Keine Werbung mögen? Gehen Werbefrei Heute

Regex-Konverter (PCRE / JS / Python / Go)

Entwickler
ANZEIGE Entfernen?

Testfenster

Syntaxreferenz

ANZEIGE Entfernen?

Führung

Regex-Flavor-Konverter (PCRE / JS / Python / Go)

Regex-Flavor-Konverter

Konvertieren Sie reguläre Ausdrücke zwischen Programmiersprachen-Flavors: PCRE (PHP), JavaScript, Python, Go, Java und Ruby. Konvertiert automatisch benannte Gruppen, Flags, Rückverweise und andere Syntaxunterschiede. Hebt inkompatible Funktionen mit klaren Warnungen hervor. Enthält ein Testfenster zur Validierung Ihrer konvertierten Regex gegen Beispielzeichenfolgen.

Nutzung

Geben Sie Ihr Regex-Muster ein, wählen Sie den Quell-Flavor (die Sprache, für die es geschrieben wurde) und den Ziel-Flavor (die Sprache, in die Sie konvertieren möchten). Die konvertierte Regex erscheint sofort mit übersetzten Flags. Überprüfen Sie die Konvertierungshinweise für vorgenommene Änderungen und Warnungen zu nicht unterstützten Funktionen. Verwenden Sie das Testfenster, um das konvertierte Muster anhand von Beispieltext zu validieren.

Funktionen

  • 6 Regex-Flavors — PCRE (PHP), JavaScript (ES2018+), Python (re-Modul), Go (regexp), Java (java.util.regex) und Ruby. Konvertieren Sie zwischen beliebigen Paaren.
  • Konvertierung benannter Gruppen — Konvertiert automatisch zwischen (?P…) (PCRE/Python/Go) und (?…) (JS/Java/Ruby) Syntax.
  • Flag-Übersetzung — Konvertiert Flags zwischen Flavors: /gi (JS) ↔ re.IGNORECASE (Python) ↔ (?i) inline (PCRE/Go) ↔ Pattern.CASE_INSENSITIVE (Java).
  • Rückverweis-Konvertierung — Benannte Rückverweise konvertiert: (?P=name) ↔ k zwischen den Flavors.
  • Warnungen bei Inkompatibilität — Farblich gekennzeichnete Warnungen: Grün für saubere Konvertierungen, Gelb für Syntaxänderungen, Rot für nicht unterstützte Funktionen (z. B. Go unterstützt keine Lookbehind-Assertions, JS unterstützt keine atomaren Gruppen).
  • Testfenster — Testen Sie die konvertierte Regex anhand von Beispielzeichenfolgen. Zeigt Übereinstimmungen, Gruppen und die Anzahl der Übereinstimmungen mithilfe der RegExp-Engine von JavaScript an.
  • Syntaxreferenz — Aufklappbare Referenztabelle, die die wichtigsten Unterschiede zwischen allen Flavors zeigt: benannte Gruppen, Lookahead/Lookbehind, Flags, Zeichenklassen, atomare Gruppen, Unicode-Unterstützung.
  • Automatische Konvertierung — Ergebnisse werden sofort aktualisiert, während Sie tippen oder die Flavors ändern.

Was wird konvertiert

Benannte Gruppen: (?P) ↔ (?) Syntaxunterschiede.
Benannte Rückverweise: (?P=name) ↔ k ↔ {name}.
Flags: Inline (?imsx), Suffix /gi und sprachspezifische Konstanten.
Lookbehind-Assertions: Unterstützt in PCRE/JS/Java, begrenzt in Python/Ruby, nicht unterstützt in Go.
Atomare Gruppen: (?>…) — Nur PCRE/Java/Ruby; Warnung für JS/Python/Go.
Possessive Quantifizierer: a++ — Nur PCRE/Java/Ruby.
Zeichenklassen: \R, \h, \v (PCRE-spezifisch) werden für andere Flavors gekennzeichnet.
Kommentare: (?#…) Syntax — Nur PCRE/Python.
Bedingte Ausdrücke: (?(cond)yes|no) — Nur PCRE.

ANZEIGE Entfernen?

Warum unterscheiden sich Regex-Flavors zwischen Sprachen?

Reguläre Ausdrucksimplementierungen haben sich unabhängig voneinander in verschiedenen Programmiersprachen entwickelt. Perls Regex-Engine (PCRE) wurde zur funktionsreichsten, fügte benannte Gruppen, Lookbehind, atomare Gruppen und andere fortgeschrittene Funktionen hinzu. Andere Sprachen übernahmen Teilmengen: JavaScript hatte anfangs grundlegende Regex und fügte nach und nach Funktionen hinzu (benannte Gruppen in ES2018, Lookbehind in ES2018). Pythons re-Modul verwendet die (?P)-Syntax, die von einem frühen Vorschlag übernommen wurde. Go entschied sich bewusst für eine einfachere Regex-Engine (RE2), die eine lineare Zeitkomplexität garantiert, aber Funktionen wie Lookbehind opfert. Jede Sprache traf unterschiedliche Kompromisse zwischen Leistung und Funktionalität.

Welche Regex-Funktionen können nicht konvertiert werden?

Einige Funktionen existieren nur in einem oder zwei Flavors und haben keine Entsprechung in anderen. Lookbehind-Assertions existieren nicht in Go's RE2-Engine — es gibt keine Umgehungslösung, nur eine Neugestaltung des Musters. Atomare Gruppen und possessive Quantifizierer (PCRE/Java/Ruby) haben keine direkte Entsprechung in JavaScript, Python oder Go. PCRE-spezifische Zeichenklassen wie \R (jede Zeilenumbruch), \h (horizontale Leerraumzeichen) und \v (vertikale Leerraumzeichen) müssen zu Zeichenklassen-Äquivalenten erweitert werden. Bedingte Muster (?(cond)yes|no) sind nur in PCRE verfügbar. Dieses Tool warnt Sie vor diesen Inkompatibilitäten, damit Sie wissen, was manuell angepasst werden muss.

Ist das Testfenster für alle Flavors genau?

Das Testfenster verwendet die native RegExp-Engine von JavaScript, daher testet es das JavaScript-Regex-Verhalten genau. Für andere Ziel-Flavors gibt der Test eine vernünftige Annäherung, kann aber in Randfällen abweichen — insbesondere in Bezug auf die Behandlung von Unicode, das Verhalten bei Zeilenumbrüchen und Funktionen, die JavaScript nicht unterstützt (wie atomare Gruppen). Für die Produktionsnutzung sollten Sie Ihre konvertierte Regex immer in der tatsächlichen Zielsprache testen. Das Testfenster eignet sich am besten für die schnelle Validierung grundlegender Musterübereinstimmungen.

Was ist der Unterschied zwischen PCRE und JavaScript Regex?

PCRE (Perl Compatible Regular Expressions, verwendet von PHP) ist der funktionsreichste Flavor: Er unterstützt benannte Gruppen mit (?P), variable Lookbehind-Längen, atomare Gruppen (?>…), possessive Quantifizierer (a++), bedingte Muster, rekursive Muster und Inline-Flag-Scoping (?i:…). JavaScript-Regex ist einfacher: Benannte Gruppen verwenden (?), Lookbehind wurde in ES2018 hinzugefügt, und es gibt keine Unterstützung für atomare Gruppen, possessive Quantifizierer oder bedingte Ausdrücke. PCRE verwendet die /pattern/flags-Syntax wie JavaScript, unterstützt aber mehr Flags (x für den ausführlichen Modus, s für DOTALL). Die Konvertierung von PCRE → JS erfordert oft die Entfernung fortgeschrittener Funktionen.

Möchten Sie werbefrei genießen? Werde noch heute werbefrei

Erweiterungen installieren

IO-Tools zu Ihrem Lieblingsbrowser hinzufügen für sofortigen Zugriff und schnellere Suche

Zu Chrome-Erweiterung Zu Kantenerweiterung Zu Firefox-Erweiterung Zu Opera-Erweiterung

Die Anzeigetafel ist eingetroffen!

Anzeigetafel ist eine unterhaltsame Möglichkeit, Ihre Spiele zu verfolgen. Alle Daten werden in Ihrem Browser gespeichert. Weitere Funktionen folgen in Kürze!

ANZEIGE Entfernen?
ANZEIGE Entfernen?
ANZEIGE Entfernen?

Nachrichtenecke mit technischen Highlights

Beteiligen Sie sich

Helfen Sie uns, weiterhin wertvolle kostenlose Tools bereitzustellen

Kauf mir einen Kaffee
ANZEIGE Entfernen?