Frank Schönmann: Tausenderpunkte einfügen

Beitrag lesen

hi!

Ich weiss zwar nicht genau warum, da ich Deinen Ausdruck nicht
100%ig nachvollziehen konnte (was ?= z.B. bewirkt, konnte ich in
der Doku nicht finden), aber es funktioniert (inzwischen sogar
ohne das ?=). Die Syntax, die ich jetzt verwende, lautet also:
$wert =~  s/(\d{1,3})(\d{3})+,/$1./g;

Ich glaube nicht, dass das so funktioniert, denn damit verwirfst du
ja einen Teil deines Ausdrucks -- bzw. du ersetzt den kompletten
Ausdruck durch einen Teil davon. (?=<pattern>) ist eine positive
look-ahead Anweisung[1], die dafür sorgt, dass der Teil des Ausdrucks
beim Ersetzen später keine Rolle mehr spielt. Also genau das, was du
eigentlich haben willst.

Merke: lieber nicht zuviel in unbekannten regulären Ausdrücken
rumspielen... ;)

bye, Frank!

[1] siehe auch perldoc perlre