Sie waren designed to be compatible mit Perl 5 Regexes. Perl 5 regexes sollte nur in .NET arbeiten.
Sie können einige RegexOptions
übersetzen:
[Flags]
public enum RegexOptions
{
Compiled = 8,
CultureInvariant = 0x200,
ECMAScript = 0x100,
ExplicitCapture = 4,
IgnoreCase = 1, // i in Perl
IgnorePatternWhitespace = 0x20, // x in Perl
Multiline = 2, // m in Perl
None = 0,
RightToLeft = 0x40,
Singleline = 0x10 // s in Perl
}
Ein weiterer Tipp wörtlich Strings zu verwenden ist, so dass Sie nicht diese alle Escape-Zeichen in C# entkommen müssen:
string badOnTheEyesRx = "\\d{4}/\\d{2}/\\d{2}";
string easierOnTheEyesRx = @"\d{4}/\d{2}/\d{2}";
+1 Große Antwort –
Awesome, thanks ... BTW, ich war ziemlich angenehm überrascht, wie kompatibel die 2 Dialekte sind ... sogar Umschau usw. Ich hatte auch nicht gewusst, dass die Regex.Replace-Methode in .NET unterstützte das Ersetzen passender eingeklammerter Teilausdrücke ($ 1, $ 2 usw.) wie folgt: str = Regex.Replace (str, @ "([az] +): (\ d +)", m => m.Result ("$ 1 - $ 2 ")) was dem Perl entspricht: s/([az] +): (\ d +)/$ 1 - $ 2/g – JoelFan
" Einige Elemente sind nur Perl "erwähnt keine Zeichenumsetzung (wie tr/tgca/acgt /), so wird es unterstützt, oder? – mbx