seth: reguläre Ausdrücke

Beitrag lesen

gudn tach!

nachfolgender regulärer Ausddruck dient der Suche nach Tags wie sie in Foren vorkommen, z.B. [quote], [quote:af259def2], [quote:af259def2="username"]: [...]

der code wuerde schon versagen, wenn zwei tags vorkommen, also z.b. bei
  '1[tag:a:x]foo[/tag:a:x]2[tag:b:y]bar[/tag:b:y]'
denn (.|\n$)* matcht z.b. auch square brackets.

ein paar anmerkungen zur vereinfachung:
  [[]    ist dasselbe wie [
  []]    ist dasselbe wie ]
  [:|=] ist dasselbe wie [:|=]

in ([) bzw. (]) sind die runden klammern eigentlich ueberfluessig.

in ausdruecken wie
  (((foo)(bar*))?)
wuerde ich nicht backreferences fuer jeden term erstellen. mit ?: kann man gruppieren ohne backreferences zu erstellen.
z.b.
  (?:(?:(foo)(bar*))?)

Wenn ich jetzt den ausdruck verwende wird mir der Username  jedoch vom Abschnitt 5 /...(.|\n$)*)?).../ gemeinsam mit Gleichheitszeichen und Anführungszeichen ausgegeben: ="username" statt username
Ich möchte gerne den usernamen ohne Anführungszeichen extrahieren und das Gleichheitszeichen durch 4 rausfiltern.

gib mal 'nen beispielstring an.

prost
seth