murphy+2008-06-26 16:17:23--moritz+2008-06-26 12:01:06--[...] Reguläre Ausdrücke eignen sich nicht für verschachtelte Konstrukte.
Seit Perl 5.10 sind die regulären Ausdrücke effektiv
PEGs und eignen sich folglich auch für verschachtelte Konstrukte und komplette Parser, wenn man möchte.
Die Botschaft hör ich wohl, allein es fehlt der Glaube.
Als ich nach dem Release von perl-5.10 probiert habe, so eine "regex" für XML zu bauen habe ich erst mal zwei Bugs in der Regex-Engine entdeckt, und habe festgestellt, dass es, auch wenn man mal gerade nicht auf bugs trifft, verdammt hart ist, diese Dinger zu debuggen.
Z.B. kann man sich nicht einfach ein stack-trace ausgeben lassen um zu sehen, in welcher Verschatelung die einzelnen Teile der "Regex" gematcht haben.
Auch ist es komisch, wenn nicht-backtrackende Gruppen (?>...) auf einmal langsamer sind als backtrackende.
Ich bleibe also dabei, dass "geeignet" was anderes ist.
Update: ach ja, ausserdem will man ja beim parsen einen Parse-Tree bauen, und das kann man in den 5.10er-regexes nur dann, wenn man (?{...}) Assertions benutzt, die immer noch als "experimental" gelten und z.B. viele Scoping-Bugs haben. Kein Spass.