Einzelnen Beitrag anzeigen

Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#1

Regulärer Ausdruck funktioniert nicht unter .NET

  Alt 20. Feb 2005, 13:10
Hallo,

ich beschäftige mich derzeit mit dem System.Text.RegularExpressions Namespace des .NET Frameworks.
Laut Handbuch wird eine Ähnliche Funktionialität wie in "Perl 5" geboten.

Jedoch wird der Modifier "?R" für Rekursion nicht erkannt und eine ArgumentException Exception beim Erstellen der RegEx Klasse ausgelöst.

Der gesamte Ausdruck sieht wie folgt aus:
Delphi-Quellcode:
// C# (mit zusätzlichen Escape-Sequenzen)
ClassBodyRegEx = new Regex("\\{(((?>[^{}]+)|(?R))*)\\}", RegexOptions.Singleline);
// Delphi Win32 (benutzt externe Perl5-Kompatible RegEx Library)
ClassBodyRegEx := RegexCreate('\{(((?>[^{}]+)|(?R))*)\}', [rcoSingleLine]);
Kann ich die .NET Regexes dazu "überrden", den Modifier für Rekursion zu akzeptieren?
Wenn nein, wie kann ich den Ausdruck ohne Rekursion am besten Schreiben?

mfG
mmirage228
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat