Zitat von
fkerber:
Hmm, wie sollte mir denn das ? da weiterhelfen? Es besagt doch nur, dass der Ausdruck (in deinem Bsp. also jedes beliebige Zeichen) 0x oder 1x vorkommt?
Hinter einem + oder * hat das Fragezeichen eine andere Bedeutung, schließlich sagen ja schon + oder * etwas über die Quantität aus. Hier wird das ? zum Lazy-Operator - der Regex verschlingt nicht mehr so viel Text wie möglich (greedy) sondern so wenig wie nötig (lazy).
Zitat:
Wie sollte denn ein solcher Parser aussehen?
Die einfachste Lösung, die mir gerade einfällt:
Finde das innerste Span-Element (soll heißen: ein <span>-</span>-Paar, in dem kein "<span" zu finden ist) und ersetze es
Wiederhole solange, bis alle spans ersetzt sind.
Diese Abfrage könnte man sogar doch in einem Regex formulieren, perfekt ist es aber immer noch nicht.Das sind zwar eher seltene Fälle (z.B. ein "<span" in einem Attribut), für volle Perfektion bräuchtest du aber dann doch einen Parser, der eben unter Anderem die Attribute auslässt.
Hoffentlich habe ich dich jetzt nicht noch mehr verwirrt
. Regexes sind wirklich cool, aber irgendwo liegen eben die
Grenzen...
Zitat:
Bei der ganzen Sache habe ich bisher sowieso nicht verstanden, dass es für dieses Problem scheinbar noch keine Lösung gibt...
Wie gesagt, mit XHTML dürfte das Problem banal sein
.