Moderne RegEx-Varianten (PCRE)
Enthält C, C++, Delphi, EditPad, Java, JavaScript, Perl, PHP (preg), PostgreSQL, PowerGREP, PowerShell, Python, REALbasic, Real Studio, Ruby, TCL, VB.Net, VBScript, wxWidgets, XML Schema, Xojo, XRegExp.
PCRE-Kompatibilität kann variieren
Irgendwo: . ^ $ * + - ? ( ) [ ] { } \ |
Ältere RegEx-Aromen (BRE/ERE)
Enthält awk, ed, egrep, emacs, GNUlib, grep, PHP (ereg), MySQL, Oracle, R, sed.
Die PCRE-Unterstützung kann in späteren Versionen oder durch die Verwendung von Erweiterungen aktiviert werden
ERE/awk/egrep/emacs
Außerhalb einer Charakterklasse: . ^ $ * + ? ( ) [ { } \ |
Innerhalb einer Zeichenklasse: ^ - [ ]
BRE/ed/grep/sed
Außerhalb einer Charakterklasse: . ^ $ * [ \
Innerhalb einer Zeichenklasse: ^ - [ ]
Bei Literalen nicht ausbrechen: + ? ( ) { } |
Für Standard-Regex-Verhalten, Escape: \+ \? \( \) \{ \} \|
Notas
- Wenn Sie sich bei einem bestimmten Zeichen nicht sicher sind, können Sie es wie folgt auslassen
\xFF
- Alphanumerische Zeichen können nicht durch einen Backslash ersetzt werden
- Beliebige Symbole können in PCRE mit einem Backslash escaped werden, aber nicht in BRE/ERE (sie müssen nur escaped werden, wenn sie benötigt werden). Für PCRE
] -
müssen nur innerhalb einer Zeichenklasse escapet werden, aber der Einfachheit halber habe ich sie in einer einzigen Liste zusammengefasst
- Bei in Anführungszeichen gesetzten Ausdrücken müssen auch die sie umgebenden Anführungszeichen maskiert werden, und zwar oft mit verdoppelten Backslashes (wie
"(\")(/)(\\.)"
gegen /(")(\/)(\.)/
in JavaScript)
- Abgesehen von Escapes können verschiedene Regex-Implementierungen unterschiedliche Modifikatoren, Zeichenklassen, Anker, Quantifizierer und andere Merkmale unterstützen. Weitere Einzelheiten finden Sie unter reguläre-ausdrücke.info , oder verwenden Sie regex101.de um Ihre Ausdrücke live zu testen
5 Stimmen
Gute Regex-Bibliotheken haben Funktionen wie "
escape()
", um die Verwendung beliebiger Zeichenketten als Regex-Teile zu ermöglichen.2 Stimmen
Sie können Online-Regex-Ausdrucksprüfungen verwenden wie gskinner.com/RegExr (es ist kostenlos). (Tippen Sie ein und fahren Sie dann mit der Maus über die eingegebene Regex)
0 Stimmen
In PHP können Sie verwenden php.net/preg_quote
2 Stimmen
Alle nicht-alphanumerischen Zeichen werden durchgestrichen. Punkt.
2 Stimmen
Diese Frage wurde in die Stack Overflow Reguläre Ausdrücke FAQ unter "Sonstiges".
1 Stimmen
Diese Frage wurde in die Stack Overflow Reguläre Ausdrücke FAQ unter "Fluchtsequenzen".
1 Stimmen
Siehe auch
\Q
...\E
fliehen.\Qhello?\E
passt zu "hallo?", aber nicht zu "hell" oder "hello". Funktioniert zumindest in PCRE/PHP/Perl/Go0 Stimmen
Wie verhält es sich mit einfachen und doppelten Anführungszeichen und "/", wie kann man diese in der BRE- und ERE-Syntax (außerhalb der Zeichenklasse) umgehen?