Thread RegEx arbeitet nicht wie erwartet (9 answers)
Opened by roli at 2008-02-05 15:09

moritz
 2008-02-05 15:40
#105581 #105581
User since
2007-05-11
923 Artikel
HausmeisterIn
[Homepage]
user image
Also die Erklärung besteht aus zwei Teilen:

1) $new_num ist nicht initialisiert ;-)
2) s/../../g lässt keine überlappenden Matches zu.
Die Regex matcht also zuerst "1,234", und kann dann nicht mehr "4,567" matchen, weil die "4" schon zum vorherigen match gehört.
Um keinen Überlapp zu haben kann man sowas machen:
s/(\d),(\d)/$1$2/g;
Oder so:
s/(\d),(?=\d{3})/$1/g;

View full thread RegEx arbeitet nicht wie erwartet