Tom: Regular Expression

Beitrag lesen

Hello Joachim,

gehts damit?
preg_replace("#([0-9]+)((,|.)([0-9]+))?[^0-9]*#i", "\1.\4", $string)

könntest Du das bitte etwas erläutern?
Mit Regular Expressions tu ich mich auch immer noch schwer und nutze daher gerne die Gelegenheit, wenn ich mal eine "einfache" erklärt bekomme.

#             Begrenzer für das Pattern
([0-9]+)      die Ziffernzeichen 1 bis n Mal, warum in Klammern?

((,|.)([0-9]+))?  Die Gruppe in Klammern 0 oder 1 Mal

(,|.)     entweder Komma oder Punkt, Der Punkt muss escaped werdern
   ([0-9]+)   Ziffernzeichen 1 bis n Mal

[^0-9]*       Alle Zeichen, die keine Ziffern sind 0 bis n Mal
              Warum "keine Ziffern?" es dürfte da doch im Prinzip nichts anderes
              als Whitespace stehen, oder?

#             Ende des Pattern

i             case Insensitive, wieso? sind doch keinen Lettern da?

", "\1.\4", $string)  und da verließen sie ihn. Backreferenzen? was bedeuten die?

Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau
Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)