seth_not@home: RegEx schreiben lernen

Beitrag lesen

gudn tach!

RegEx: (?:((?<==)[a-zA-Z0-9\_-[]]+))

wozu die aeussere klammer?

Die äußerste "Klammerung: (?:...)" habe ich mal "vorsichtshalber" gesetzt und sie macht den Rest nur "nicht gierig".

huch, seit wann das?

(?:)
heisst eigentlich nur, dass der kram darin nicht gespeichert wird.

/(hulla)/;   # $1 wird erstellt
/(?:hulla)/; # $1 wird nicht erstellt

(mehr siehe perldoc perlre)

Was ich eigentlich wissen /lernen will ist, wie ich es am besten angehe, wenn ich was komliziertes mit RegEx lösen will.

ich denke, am besten ist es, wenn man einfach viel damit macht und somit erfahrung gewinnt. ein bissl wissen ueber chomsky kann aber auch nicht schaden.

Hier bin ich es so angegangen, dass ich zunächst versucht habe, alle Attribute zu treffen, dann habe ich probiert, wie ich "hinzu kombinieren kann", dass diese Treffer auch innerhalb von Tags liegen (also quasi inside-out od. bottom-up oder so ähnlich - wäre das prinzipiell ein brauchbarer Anfang?).

oft schon. oft ist es hilfreicher, drei mal "om!" zu sagen und sich vorzustellen, man waere ein regexp-parser.

schaue dir mal an, das \G fuer ein tolles dings ist: perldoc perlre und perldoc perlop.
bei "perlop" ist auch ein beispiel eines kleinen scanners, wie du ihn auch bauen koenntest. [...]

Das ist wirklich ganz nett. Auf die Art und Weise kann man es sicher in diversen Sprachen angehen.

ja, und vor allem in perl. ;-)
und in perl waer's auch recht schnell, weil man nur einmal durch den string marschieren muss.

Nichtsdesto trotz möchte ich es dennoch "in einer RegEx" lösen können.

hmm, ok, macht zwar eigentlich keinen praktischen sinn, aber fuer reine uebungszwecke kann man ja mal ueberlegen. hmm, aber ueberlegen macht hungrig. ich geh jetzt erst mal essen...

prost
seth