regexp
Sammy
- javascript
Hi zusammen,
kann mir jemand diesen reg. Ausdruck hier auf "Deutsch" übersetzen?
</?[A-Za-z]+[^>]*>
1000 Dank!!!
Sammy
</?[A-Za-z]+[^>]*>
Das matcht alles von A bis Z egal ob groß oder klein geschrieben
Die Buchstaben dürfen mehrfach vorkommen.
Andere Inhalte dürfen keine drinnen sein ausser Buchstaben.
Je nach Server Einstellungen sind Umlaute enthalten, oder auch nicht.
Keine Gewähr
hi,
</?[A-Za-z]+[^>]*>
Das matcht alles von A bis Z egal ob groß oder klein geschrieben
Die Buchstaben dürfen mehrfach vorkommen.
Höchstens die halbe Wahrheit.
Andere Inhalte dürfen keine drinnen sein ausser Buchstaben.
Zunächst mal soll der gesuchte Text mit einem < beginnen, danach darf, muss aber nicht, ein / stehen.
Dann kommt in der Tat "was mit Buchstaben", und dann noch beliebig viele Zeichen _außer_ der spitzen Klammer >, bevor dann am Ende des Treffers eine solche noch mal explizit gefordert ist.
gruß,
wahsaga
Zunächst mal soll der gesuchte Text mit einem < beginnen, danach darf, muss aber nicht, ein / stehen.
Dann kommt in der Tat "was mit Buchstaben", und dann noch beliebig viele Zeichen _außer_ der spitzen Klammer >, bevor dann am Ende des Treffers eine solche noch mal explizit gefordert ist.
aaaaaah, dankeschön!!!!
Das passt!
Merci,
Sammy
Hi,
Zunächst mal soll der gesuchte Text mit einem < beginnen, danach darf, muss aber nicht, ein / stehen.
Dann kommt in der Tat "was mit Buchstaben", und dann noch beliebig viele Zeichen _außer_ der spitzen Klammer >, bevor dann am Ende des Treffers eine solche noch mal explizit gefordert ist.
Bei z.B.
<span title=">">
wird also
<span title=">
gefunden ...
Das passt!
wirklich?
cu,
Andreas
Hello out there!
Das passt!
wirklich?
Passt das?
<[A-Za-z_:][\w.-_:]*(?:\s+[A-Za-z_:][\w.-_:]*\s*=\s*(?:"(?:[^&<"]|&[A-Za-z_:][\w.-_:]*;)*"|'(?:[^&<']|&[A-Za-z_:][\w.-_:]*;)*'))*\s*/?>|</[A-Za-z_:][\w.-_:]*>
See ya up the road,
Gunnar
Hi,
Passt das?
<[A-Za-z_:]
kommt drauf an wofür - für HTML/XHTML/XML jedenfalls nicht.
Für HTML/XHTML: nein, der Unterstrich ist auf jeden Fall zuviel.
Für XML: nein, da ist die Einschränkung auf A-Za-z falsch (auch andere Buchstaben wie é, ä usw. sind erlaubt)
Den Rest des Ausdrucks analysiere ich gar nicht, da für HTML/XHTML/XML bereits bewiesen ist, daß der Ausdruck nicht passen kann ;-)
Für was anderes? Dann müßtest Du schon dazusagen, was ...
cu,
Andreas
Hello out there!
<[A-Za-z_:]
Für XML: nein, da ist die Einschränkung auf A-Za-z falsch
Grmpf, ich wusste es.
Na dann doch '(?=[\w:])[^\d]' statt '[A-Za-z_:]' („hellseher-trick“).
Und '[\w.-:]' statt '[\w.-_:]' ('_' ist ja in '\w' enthalten).
<(?=[\w:])[^\d][\w.-:]*(?:\s+(?=[\w:])[^\d][\w.-:]*\s*=\s*(?:"(?:[^&<"]|&(?=[\w:])[^\d][\w.-:]*;)*"|'(?:[^&<']|&(?=[\w:])[^\d][\w.-:]*;)*'))*\s*/?>|</(?=[\w:])[^\d][\w.-:]*>
Den Rest des Ausdrucks analysiere ich gar nicht, da für HTML/XHTML/XML bereits bewiesen ist, daß der Ausdruck nicht passen kann ;-)
Na denn, jetzt aber. Oder erst, wenn dein Rausch vorüber ist? ;-)
See ya up the road,
Gunnar
Durch '(?=[\w:])' hat das Ganze nichts mehr mit JavaScript zu tun. In JavaScript hätten wohl auch die '/' im Ausdruck maskiert werden müssen.
Hi,
Na dann doch '(?=[\w:])[^\d]' statt '[A-Za-z_:]' („hellseher-trick“).
Und '[\w.-:]' statt '[\w.-_:]' ('_' ist ja in '\w' enthalten).
Hängt schon mal stark davon ab, wie die zu verwendende Regex-Engine das \w interpretiert.
Ggf. ist \w mit [a-zA-Z0-9_] ident, so daß wieder viele Buchstaben fehlen.
Aber selbst wenn \w die passende Buchstabenmenge wäre:
[\w.-:] erlaubt neben den Wort-Zeichen noch die Zeichen '.', '/', die Ziffern und den ':'.
'/' ist aber im Elementnamen nicht erlaubt.
cu,
Andreas
Hello out there!
Hängt schon mal stark davon ab, wie die zu verwendende Regex-Engine das \w interpretiert.
Ja, war mir schon klar. Der Einfachheit halber ...
Aber selbst wenn \w die passende Buchstabenmenge wäre:
... gehen wir mal davon aus. Du willst nicht wirklich, dass ich alle Zeichen explizit aufschreibe?
[\w.-:] erlaubt neben den Wort-Zeichen noch die Zeichen '.', '/', die Ziffern und den ':'.
Ah, verdammt. (Da musste ich erst dreimal überlegen, was du meinst.)
[\w.-:] sollte es tun. [\w.:-] auch.
<(?=[\w:])[^\d][\w.:-]*(?:\s+(?=[\w:])[^\d][\w.:-]*\s*=\s*(?:"(?:[^&<"]|&(?=[\w:])[^\d][\w.:-]*;)*"|'(?:[^&<']|&(?=[\w:])[^\d][\w.:-]*;)*'))*\s*/?>|</(?=[\w:])[^\d][\w.:-]*>
Gibt’s wieder einen Grund, vor dem zehnten Zeichen aufzuhören, sich den Rest anzusehen? ;-)
See ya up the road,
Gunnar
Hi,
<(?=[\w:])[^\d][\w.:-]*(?:\s+(?=[\w:])[^\d][\w.:-]*\s*=\s*(?:"(?:[^&<"]|&(?=[\w:])[^\d][\w.:-]*;)*"|'(?:[^&<']|&(?=[\w:])[^\d][\w.:-]*;)*'))*\s*/?>|</(?=[\w:])[^\d][\w.:-]*>
Gibt’s wieder einen Grund, vor dem zehnten Zeichen aufzuhören, sich den Rest anzusehen? ;-)
Seh ich im Moment keinen. Diesmal komm ich etwas weiter.
Im Attributwert: (?:[^&<"]|&(?=[\w:])[^\d][\w.:-]*;)


(?:[^&<"]+|&#(?:x[a-fA-F0-9]+|[0-9]+);|&(?=[\w:])[^\d][\w.:-]*;)
(ungetestet)
cu,
Andreas
Hello out there!
Im Attributwert: (?:[^&<"]|&(?=[\w:])[^\d][\w.:-]*;)


Einmal falsch abgebogen ... Bin von [10] zu [68] statt zu [67] und hab [66] ausgelassen. Wie konnte ich nur.
(ungetestet)
Das sowieso. ;-)
See ya up the road,
Gunnar
Hello out there!
</?[A-Za-z]+[^>]*>
Man kann den Ausdruck auch noch vereinfachen: Da [A-Za-z] in [^>] enthalten ist, ist das + überflüssig:
</?[A-Za-z][^>]*>
Zur Prüfung auf gültige Tags in HTML oder XML 1.0 ist der Ausdruck aber zu allgemein; zur Prüfung auf gültige Tags in XML 1.1 ist er zu speziell.
See ya up the road,
Gunnar