boast
Mitglied
So hallo erstmal!
Hab folgendes kleines Problem mit meinem RegEx: Er macht nicht was er will .
Hab ihn schon mehrmals vereinfacht und auseinander genommen, aber ich komm net drauf, wo der Fehler liegt.
(geht um HTML matchen, die Variable $tag soll ein gültiger Tag sein):
Also, mal Zeile um Zeile...:
Anfang (/) sowie das HTML maskierte <:
Evt. kann der Tag ja auch ein EndTag-Slash haben:
Der eigentliche Tag (wird mit foreach($allowedTags as $tag) eingefügt):
Die Attribute:
Wobei space + gültiges Attribut...
...space + = + verschiedene Arten wie man Attribute angeben kann (', ", ohne maskiertes >)...
...oder kein Attribut:
Wieder Variable End-Tag (z.B. bei img-Tag) sowie das Maskierte >:
Wäre sehr dankbar, wenn mir da jemand helfen könnte...
Hab folgendes kleines Problem mit meinem RegEx: Er macht nicht was er will .
Hab ihn schon mehrmals vereinfacht und auseinander genommen, aber ich komm net drauf, wo der Fehler liegt.
(geht um HTML matchen, die Variable $tag soll ein gültiger Tag sein):
Code:
/<(\/?)(\$tag)((\s+(class|href|title|rel|rev)+(\s*=\s*(?:\".*?\"|'.*?'|[^'\">\s]+))?)+\s*|\s*)(\/?)>/
Also, mal Zeile um Zeile...:
Anfang (/) sowie das HTML maskierte <:
Code:
/<
Code:
(\/?)
Code:
(\$tag)
Code:
((\s+(class|href|title|rel|rev)+(\s*=\s*(?:\".*?\"|'.*?'|[^'\">\s]+))?)+\s*|\s*)
Code:
\s+(class|href|title|rel|rev)
Code:
(\s*=\s*(?:\".*?\"|'.*?'|[^'\">\s]+))
Code:
|\s*
Code:
(\/?)>/
Wäre sehr dankbar, wenn mir da jemand helfen könnte...