3 Stimmen

Ist die Syntax zum Schreiben regulärer Ausdrücke standardisiert?

Ist die Syntax zum Schreiben regulärer Ausdrücke standardisiert? Das heißt, wenn ich einen regulären Ausdruck in C++ schreibe, funktioniert er in Python oder Javascript ohne Änderungen.

8voto

Oddthinking Punkte 22694

Nein, es gibt verschiedene Dialekte von regulären Ausdrücken.

Sie haben im Allgemeinen viele Gemeinsamkeiten.

Einige beliebte sind aufgelistet und verglichen aquí .

0voto

Pointy Punkte 387467

Einfache reguläre Ausdrücke, meistens ja. Allerdings gibt es im Spektrum der Programmiersprachen Unterschiede.

0voto

Amarghosh Punkte 56804

Nein, hier sind einige Unterschiede, die mir einfallen:

  • Mit JavaScript können Sie Inline-Regex schreiben (wobei \ において \s muss nicht als "escaped" werden \\s ), die durch das Feld / Zeichen. Sie können Flaggen nach dem abschließenden / . JS hat auch RegExp Konstruktor, der die escapte Zeichenkette als erstes Argument und eine optionale Flaggenzeichenkette als zweites Argument annimmt.

    /^\w+$/i y new RegExp("^\\w+$", "i") sind gültig und identisch.

  • In PHP können Sie die Regex-Zeichenfolge in ein beliebiges Begrenzungszeichen Ihrer Wahl einschließen (ich bin mir nicht sicher, welche Zeichen als Begrenzungszeichen verwendet werden können). Auch hier sollten Sie Backslashes vermeiden.

    "|[0-9]+|" ist identisch mit #[0-9]+#

  • Python und C# unterstützt Raw Strings (nicht auf Regex beschränkt, aber wirklich hilfreich für das Schreiben von Regex), die Sie unescaped Backslashes in Ihrem Regex schreiben können.

    "\\d+\\s+\\w+" kann geschrieben werden als r'\d+\s+\w+' in Python und @'\d+\s+\w+' in C#

  • Begrenzungszeichen wie \< , \A usw. werden nicht global unterstützt.

  • JavaScript unterstützt kein Lookbehind und die DOTALL Flagge.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X