Rash thoughts about .NET, C#, F# and Dynamics NAV.


"Every solution will only lead to new problems."

Monday, 20. June 2005


RegEx Regulärer Ausdruck

Filed under: Theoretische — Steffen Forkmann at 8:46 Uhr

Laut Theorie kann man mit regulären Ausdrücken bekanntlich keine beliebig tiefen Klammerstrukturen analysieren. Mit einem modernen RegEx-Parser geht das trotzdem:

\(
    (?>
        [^()]+
           |    \( (?<number>)
           |    \) (?<-number>)
    )*
    (?(number)(?!))
\)

Das liefert zumindest die größten balancierten Klammerausdrücke in einem Text.

Also aus “blabla () + (3*(5+3)*4) blah” werden die beiden Matches “()” und “(3*(5+3)*4)” gefunden.

Die Folge ist, dass ein RegEx-Parser echt mächtiger ist als ein regulärer Ausdruck.

Tags:

No Comments »

No comments yet.

RSS feed for comments on this post. | TrackBack URI

Leave a comment

XHTML ( You can use these tags): <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> .