Thread Gewisse Stelle im String ansprechen (6 answers)
Opened by Umut at 2015-10-09 14:20

Raubtier
 2015-10-09 15:26
#182550 #182550
User since
2012-05-04
1052 articles
BenutzerIn

user image
Guest Umut
Momentan habe ich das hier:
$daten1[13]=~ s/^*?.//;

Damit kann ich die 2. Stelle des Strings entfernen.
Aber was ist, wenn ich die 5. Stelle möchte?


Glaube ich nicht. Die obige RE ist komisch und entfernt nur das erste Zeichen. Was genau soll ^*? auch bedeuten? Den Zeilenanfang beliebig oft, aber möglichst nur 0 mal matchen? Ergibt für mich keinen Sinn.

Ach ja, Perl sieht es genauso:
Code: (dl )
1
2
3
$ perl -wE'$_="test"; s/^*?.//; say'
^* matches null string many times in regex; marked by <-- HERE in m/^* <-- HERE ?./ at -e line 1.
est


Dein größtes Verständnisproblem scheint der * zu sein. In einer Regexp bezieht sich dieser auf das, was direkt davor steht und matcht das beliebig oft (im Normalfall möglichst oft, bei einem ? dahinter möglichst selten). Siehe die bereits von murphy verlinkte Doku.

View full thread Gewisse Stelle im String ansprechen