Regex & Mustervergleich

Regex-Engines vergleichenmit PCRE2 und RE2

Wählen Sie eine implementierte Engine, geben Sie Muster und Text ein und starten Sie den lokalen Test.

Regex-Engines vergleichen

Muster

Nur Musterkörper ohne / eingeben. RE2 arbeitet intern immer mit Unicode.

Testtext

Ergebnis

Bereit für Eingabe oder manuellen Test.

Muster und Text werden lokal im Browser-Worker verarbeitet und nicht hochgeladen.

Optionen

Bereit für Eingabe oder manuellen Test.

Funktionsmatrix der Engines

Nur PCRE2 und RE2 laufen hier. Sprachzeilen sind Referenz, keine Optionen.

ZielAusgeführtLookbehindRückverweisGrenze
PCRE2LäuftJaJaPCRE2 WASM; PHP-Wrapper fehlen.
RE2LäuftNeinNeinRE2 WASM; nicht Go oder Rust.
PHP / PCRE2Nur PCRE2-KernJaJaPHP preg_* ergänzt Begrenzer und Rückgaben.
JavaNur ReferenzJaJaKeine Java-Laufzeit hier.
GoNur ReferenzNeinNeinGo regexp ist eine eigene Implementierung.
RustNur ReferenzNeinNeinRust regex ist eine eigene Implementierung.
.NETNur ReferenzJaJaKeine .NET-Laufzeit hier.

Wandert ein Muster von PHP in einen Go-Dienst, beweist ein grüner JavaScript-Treffer noch nichts über die Zielumgebung. Regex-Engines vergleichen macht die echte Kompilierung sichtbar.

Ein Regex-Tester für PCRE2 prüft den Kern, nicht die PHP-Funktion. Go Regex testen und Regex Varianten für Rust oder Java erfordern eigene Laufzeiten; diese Sprachen stehen hier nur in der Referenzmatrix.

Warum Regex-Engines vergleichen

Der Unterschied erscheint als Treffer oder Compilerfehler.

Zwei tatsächlich laufende Engines

Wer Regex-Engines vergleichen will, braucht mehr als umbenanntes JavaScript. Lookbehind trifft in PCRE2; RE2 meldet einen Syntaxfehler.

PCRE2 markiert einen Treffer, während RE2 denselben abstrakten Ausdruck als Syntaxfehler darstellt.

Alte Berichte bleiben gesperrt

Jede Änderung an Engine, Muster, Text oder Optionen deaktiviert Kopieren und Download bis zum nächsten Lauf.

Nach einer Eingabeänderung ist der alte Bericht abgedunkelt und sein Export gesperrt.

Drei Prüfungen vor dem Übernehmen

01

Muster ohne Begrenzer eingeben

Geben Sie (?<=a)b ohne Schrägstriche ein. Ein Beispiel zeigt zuerst die überschriebenen Felder und lässt sich nach dem Anwenden einmal zurücknehmen.

  • Ein leeres Muster wird erst nach bewusstem Start ausgewertet.
02

Engine bewusst auswählen

PCRE2 ist vorausgewählt; RE2 läuft mit eigener WASM-Bibliothek. i und m sind zunächst aus.

  • Es gibt keinen Automatiklauf; Strg/Cmd+Enter startet den Test.
03

Positionen und Gruppen prüfen

Offsets zählen ab null in UTF-16-Einheiten, das Ende ist exklusiv. Die Anzeige wächst um 50 Treffer, JSON enthält den vollständigen erfolgreichen Bericht.

  • Abgebrochene Läufe lassen sich nicht exportieren.

Was der Lauf wirklich zeigt

Syntax statt Vermutung

PCRE2 akzeptiert Lookbehind und Rückverweise, RE2 weist sie zurück. Ein Fehler wechselt nicht heimlich zu JavaScript.

Gruppen und Unicode-Offsets

Nummerierte und benannte Gruppen stehen neben Treffern; RE2-Codepoint-Positionen werden nach Emoji in UTF-16 umgerechnet.

Begrenzter Worker

Der Lauf kann gestoppt werden und endet nach spätestens zwei Sekunden. Grenzen verhindern unvollständige Exportberichte.

Grenzen der Engine-Aussagen

PCRE2 ist nicht ganz PHP
Der Kern von PCRE2 läuft, PHP-Begrenzer und preg_match-Rückgaben werden nicht nachgebildet.
RE2 ist nicht Go oder Rust
Go regexp und Rust regex haben verwandte Syntax, aber andere Implementierungen. Ihre Zeilen sind keine Messungen.
Nur Treffer werden geprüft
Ersetzen, Extrahieren und Teilen fehlen, weil die Engines andere Ersetzungstoken haben.
Obergrenzen brechen ab
Maximal 100000 UTF-16-Einheiten Text, 2000 Musterzeichen, 1000 Treffer und zwei Sekunden Laufzeit.

Fragen zum Regex-Engines vergleichen

Welchen Regex-Engine sollte ich für PHP wählen?

Beim Regex-Engines vergleichen läuft standardmäßig PCRE2 als Basis von PHP. preg_match wird nicht vollständig emuliert.

Warum funktioniert ein Regex in JavaScript, aber nicht in Go?

JavaScript erlaubt Konstrukte wie Lookbehind, die RE2 ablehnt. Für Go prüfen Sie abschließend in Go regexp.

Unterstützt Go Lookbehind?

Nein. RE2 weist Lookbehind als Syntaxfehler zurück und der Fehler wird angezeigt.

Sind reguläre Ausdrücke in Java und PCRE kompatibel?

Nicht zuverlässig. Unicode, Flags und Gruppen können sich unterscheiden; prüfen Sie in der Zielanwendung.

Wie teste ich einen Ausdruck mit der richtigen Engine?

PCRE2 und RE2 laufen lokal. Java und .NET stehen nur als Referenz in der Matrix.

Noch eine Frage?

Jetzt Regex-Engines vergleichen

Laden Sie das Differenzbeispiel und lassen Sie denselben Text nacheinander mit PCRE2 und RE2 laufen.

Muster und Text bleiben im Browser und werden nicht automatisch übertragen.