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

roli
 2008-02-05 15:55
#105582 #105582
User since
2004-12-31
424 Artikel
BenutzerIn
[default_avatar]
Hi,
moritz+2008-02-05 14:40:14--
Also die Erklärung besteht aus zwei Teilen:

1) $new_num ist nicht initialisiert ;-)

Ist's doch, nur aus "Ergonomiegruenden", was auch nur eine Umschreibung fuer Faulheit ist, habe ich's hier weggelassen ;-}

moritz+2008-02-05 14:40:14--
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.

Aha, dann hoffe cih mal das ich mir das fuer die Zukunft merke.

moritz+2008-02-05 14:40:14--
Um keinen Überlapp zu haben kann man sowas machen:
s/(\d),(\d)/$1$2/g;
Oder so:
s/(\d),(?=\d{3})/$1/g;

Variante 2 gefaellt mir besser, bzw. ist naeher an meiner urspruenglichen Loesung.

Danke
Roland
--
"Steh vorn, während du fragst;
sitzen soll, wer antwortet."
Aus "Die Edda des Snorri Sturluson" "Gylfis Täuschung" Strophe 2

View full thread RegEx arbeitet nicht wie erwartet