LazowskiAnton · Extensions

RegexSmith

Reguläre Ausdrücke erklärt und getestet, genau dort, wo sie geschrieben werden. Zeigen Sie in C# auf ein Muster und sehen Sie eine Zeile pro Teil in einfachen Worten, seine Gruppen in Farbe und passende Zeichenfolgen; Muster, die hängen können, sind unterstrichen; eigene Beispiele probieren Sie im RegexSmith-Tester aus und schreiben das Muster mit einem Klick zurück.

Kostenlos · Visual Studio 2022 und 2026 · 14 UI-Sprachen · keine Telemetrie

Warum RegexSmith

Eine Hover-Karte über einem [GeneratedRegex]-Muster: das Muster mit farbigen Gruppen, eine Zeile pro Teil in einfachen Worten, passende Beispiele und eines, das nicht passt, und der Status ✓ sicher

Einfache Worte statt Syntaxlektion

Aus ^(?<year>\d{4})-(?<id>\d{1,5})$ wird „Am Anfang des Textes“, „Genau 4 Ziffern“, „1 bis 5 Ziffern“ – eine Zeile pro Teil, unter ihrer Gruppe eingerückt, jede Gruppe in ihrer eigenen Farbe.

Geprüft von der echten Engine

Die Beispiele in der Karte und jedes Ergebnis im Tester stammen von der Regex-Engine von .NET selbst, mit den Optionen des Aufrufs. Was Sie sehen, macht auch Ihre App.

Muster, die hängen können

([a-z0-9]+\.?)+ sieht harmlos aus und kann bei einer langen Zeichenfolge, die fast passt, eine Anfrage einfrieren. RegexSmith unterstreicht solche Wiederholungen und behebt sie mit Ctrl+.

Kostenlos, ohne Haken

Kein Abo, keine „Pro“-Version, keine Datensammlung, keine Meldungen im Ausgabefenster oder beim Start. Muster und Beispiele bleiben auf Ihrem Computer. Das Einzige, worum wir je bitten werden – nachdem Sie es eine Weile genutzt haben –, ist eine Bewertung im Marketplace. Läuft unter Visual Studio 2022 und 2026, x64 und ARM64.

Funktionen

Die Hover-Karte

Zeigen Sie auf die Zeichenfolge eines Musters, und die übliche QuickInfo von Visual Studio erhält eine RegexSmith-Karte: was das Muster bedeutet, was es findet und ob es sicher ist.

Die Hover-Karte: die Kopfzeile mit Art und Optionen, das Muster mit farbigen Gruppen, eine Zeile pro Teil unter den Gruppen eingerückt, die Beispiele und die Schaltfläche „Muster testen“

Wo sie funktioniert

In C#-Dateien über dem Muster von:

Normale, wörtliche (@"…") und rohe ("""…""") Zeichenfolgen werden so gelesen wie vom Compiler, daher sind "\\d" und @"\d" dasselbe Muster.

Was die Karte zeigt

Auf dem BildschirmBedeutung
RegexSmith · Regulärer .NET-Ausdruck · IgnoreCaseDie Art des Musters und die aus dem Aufruf gelesenen Optionen, rechts der Status.
Das MusterDie Klammern jeder Erfassungsgruppe in ihrer Farbe, ihr Inhalt in dieser Farbe unterstrichen; der Text behält die Farbe des Designs und bleibt so lesbar.
Genau 4 ZiffernEine Zeile pro Teil in einfachen Worten – „Am Anfang des Textes“, „Einer der Texte: ‚jpg‘, ‚png‘“, „1 bis 5 Ziffern“ – unter ihrer Gruppe eingerückt. Ein sehr langes Muster endet mit … N weitere.
GruppenetikettenName oder Nummer jeder Gruppe auf einem Etikett in ihrer Farbe – dieselben Farben wie im Muster und unter dem Code.
✓ Passt: … ✗ Passt nicht: …Zwei Zeichenfolgen, die passen, und eine, die nicht passt, aus dem Muster erzeugt und von der echten .NET-Engine geprüft. Leerzeichen erscheinen als blasse Punkte.
▶ Muster testen…Öffnet das Muster im RegexSmith-Tester.

Der Status

Auf dem BildschirmBedeutung
✓ sicher.NET akzeptiert das Muster, und nichts darin kann katastrophales Backtracking auslösen.
⚠ kann hängenEine Wiederholung kann bei langen Eingaben, die fast passen, exponentielle Zeit brauchen; die Karte nennt die Art (RX001) und dass Ctrl+. Korrekturen anbietet.
✕ ungültigDie Engine lehnt das Muster ab; die Karte zeigt ihre Meldung: .NET akzeptiert dieses Muster nicht: …

„Sicher“ bedeutet nur das: .NET akzeptiert das Muster, und es kann nicht hängen. Es bedeutet nicht, dass es findet, was Sie beabsichtigen – dafür gibt es die Beispiele und den Tester.

Gruppenunterstreichungen

Jede Erfassungsgruppe eines Musters erhält direkt im Code eine dünne Linie in ihrer Farbe – derselben Farbe wie in der Karte. Ein langes Muster mit fünf Gruppen lässt sich so auf einen Blick lesen: welcher Teil das Jahr ist, welcher die ID.

Eine Gruppe in einer anderen liegt etwas tiefer, sodass beide Linien sichtbar bleiben. Die Farben folgen der Reihe nach: Lachs, Grün, Blau, Violett, Bernstein, Türkis – und wieder von vorn.

Die Unterstreichungen lassen sich in den Einstellungen ausschalten: Erfassungsgruppen unterstreichen.

Muster, die hängen können

Manche Muster brauchen bei einer langen Zeichenfolge, die fast passt, exponentielle Zeit – der klassische Weg, wie ein regulärer Ausdruck eine Webanfrage einfriert. RegexSmith erkennt sie an ihrer Form und setzt eine Warn-Wellenlinie unter die Wiederholung; zeigen Sie darauf, um den Grund zu sehen.

Eine RX001-Wellenlinie unter ([a-z0-9]+\.?)+ mit geöffnetem Ctrl+.-Menü und einer Vorschau der Korrektur: das alte Muster durchgestrichen, das neue mit einer atomaren Gruppe

Was unterstrichen wird (RX001)

Nicht innerhalb atomarer Gruppen oder Lookarounds und nie mit RegexOptions.NonBacktracking – dort kann es nicht passieren.

Korrekturen in Ctrl+.

Setzen Sie den Cursor auf die Wellenlinie und drücken Sie Ctrl+. – jede Korrektur zeigt eine Vorschau: das Muster vorher (durchgestrichen) und nachher.

KorrekturWas sie bewirkt
Innere Wiederholung atomar machen: (?>…)Umschließt die innere Wiederholung mit (?>…). Es passen dieselben Zeichenfolgen; die Wiederholung lässt sich nicht mehr auf viele Arten aufteilen.
RegexOptions.NonBacktracking verwenden (.NET 7+)Fügt die Option dem Aufruf hinzu. Lineare Laufzeit bei jeder Eingabe; erfordert .NET 7 oder höher. Wird nur angeboten, wenn das Muster es zulässt – keine Rückverweise, Lookarounds, atomaren oder Ausgleichsgruppen, Bedingungen.
Dieses Muster in RegexSmith testenÖffnet das Muster im Tester – wird über jedem Muster angeboten, nicht nur über einem riskanten.

RX001 lässt sich in den Einstellungen (Hinweise im Editor) oder mit Diese Art von Hinweis nicht anzeigen im Tooltip ausschalten; die Korrekturen unter Ctrl+. bleiben.

Der Tester

Der RegexSmith-Tester öffnet sich angedockt neben den Suchergebnissen. Das Muster kommt aus dem Code und bleibt mit ihm verknüpft: Probieren Sie es an eigenen Beispielen aus, ändern Sie es und schreiben Sie es zurück.

Der RegexSmith-Tester: der Quelllink, das Muster, die Statuszeile, Optionsschalter, Beispiele mit Erwartungen und hervorgehobenen Gruppen, eine falsche Zeile in Rot, die Gruppentabelle und die Schaltflächen

Öffnen

Das Muster und seine Optionen

Oben Datei und Zeile des Musters – ein Klick führt dorthin. Darunter das Musterfeld, die Statuszeile (✓ sicher, ⚠ kann hängen oder der Fehler der Engine, dann N von M wie erwartet · ms) und die Optionsschalter: IgnoreCase, Multiline, Singleline, IgnorePatternWhitespace, ExplicitCapture, RightToLeft, CultureInvariant. Jede Änderung wird sofort neu ausgeführt.

Beispiele und Erwartungen

Beim ersten Mal sind die Beispiele der Karte da: zwei, die passen sollen, und eines, das nicht passen soll. Ein neues geben Sie in Beispiel hinzufügen und Eingabetaste drücken… ein; ein Klick auf ein Beispiel bearbeitet es, ✕ entfernt es. Das Zeichen vor jedem Beispiel sagt, was es tun soll – ein Klick ändert es:

Auf dem BildschirmBedeutung
✓soll passen
✗soll nicht passen
–keine Erwartung, nur anzeigen

Ein Beispiel, das das Gegenteil tut, wird rot – ✗ passt oder ✗ passt nicht –, so werden die Beispiele zu einer kleinen Spezifikation des Musters. Treffer sind getönt, Gruppen in ihren Farben unterstrichen, Leerzeichen als Punkte dargestellt. Ein Lauf, der länger als 1 Sekunde dauert, stoppt mit ⏱ zu langsam.

Gruppen des ausgewählten Beispiels listet jeden Treffer des ausgewählten Beispiels auf: den gesamten Treffer, dann jede Gruppe mit Wert und Position (nicht erfasst, wenn sie nicht beteiligt war).

Ersetzen

Die Registerkarte Ersetzen fügt ein Ersetzungsfeld hinzu – $1, ${name}, $$ für ein $ – und zeigt das Ergebnis für jedes Beispiel, wie es Regex.Replace liefern würde.

Kopieren, zurücksetzen, anwenden

Als Komponententest kopieren legt einen Test mit Ihren Beispielen in die Zwischenablage, für xUnit, NUnit oder MSTest – die Spezifikation wandert ins Testprojekt.

Zurücksetzen kehrt zu Muster und Optionen aus dem Code zurück; die Beispiele bleiben.

Auf Code anwenden schreibt das Muster als dieselbe Art von Literal zurück, die es war (normal, wörtlich oder roh), zusammen mit den Optionen – ein Rückgängig macht es wieder rückgängig. Hat sich der Code geändert, nachdem der Tester ihn geöffnet hat, wird nichts geschrieben: Öffnen Sie den Tester erneut vom Muster aus.

Die Beispiele werden pro Muster und pro Projektmappe in %LocalAppData%\RegexSmith\samples gespeichert, sodass sie beim nächsten Mal schon da sind. Nichts landet im Repository.

Einstellungen

Extras › Optionen › SmithWorks › RegexSmith. Jede Option hat eine kurze Beschreibung ihrer Wirkung.

OptionStandard
Muster beim Daraufzeigen erklärenein
Erfassungsgruppen unterstreichenein
RX001 Katastrophales Backtrackingein
Um eine Bewertung im Marketplace bittenein

Unten: Auf Standard zurücksetzen, Dokumentation, Im Marketplace bewerten und Feedback senden.

Die Einstellungen werden in %LocalAppData%\RegexSmith gespeichert.

Die Optionsseite von RegexSmith
Die Optionsseite.

FAQ

Sendet RegexSmith irgendwelche Daten?

Nein. Muster werden aus dem geöffneten Dokument gelesen und auf Ihrem Computer ausgeführt; Beispiele werden in %LocalAppData%\RegexSmith gespeichert. Keine Netzwerkanfragen, keine Telemetrie.

Die Karte zeigt „✓ sicher“. Ist das Muster richtig?

Nicht unbedingt. „Sicher“ bedeutet, dass .NET das Muster akzeptiert und keine Wiederholung darin katastrophales Backtracking auslösen kann. Ob es findet, was Sie beabsichtigen, zeigen die Beispiele: Markieren Sie sie im Tester mit ✓ oder ✗.

Warum erscheint über meinem Muster keine Karte?

Die Karte erscheint über einem Zeichenfolgenliteral, von dem RegexSmith weiß, dass es ein Muster ist: das Argument von new Regex, einer statischen Regex-Methode, [GeneratedRegex] oder [RegularExpression] oder eine dort verwendete Konstante derselben Datei. Ein zur Laufzeit gebautes Muster (verkettet, aus Einstellungen gelesen) lässt sich nicht lesen. Prüfen Sie auch Muster beim Daraufzeigen erklären in den Einstellungen.

Welche Regex-Engine wird verwendet?

Die Regex-Engine von .NET, auf der Visual Studio selbst läuft, mit den Optionen des Aufrufs. RegexOptions.NonBacktracking (.NET 7+) wird ebenfalls aus dem Aufruf gelesen; die Beispiele laufen dann auf der üblichen Engine, und es passen in beiden Fällen dieselben Zeichenfolgen.

„Auf Code anwenden“ hat nichts bewirkt.

Der Code des Musters hat sich geändert, nachdem der Tester ihn geöffnet hat, daher schreibt RegexSmith nicht an eine Stelle, an der das Muster vielleicht nicht mehr steht – der Tester sagt das unter den Schaltflächen. Öffnen Sie den Tester erneut vom Muster aus. Wo der Code keinen Platz für Optionen hat ([RegularExpression] nimmt keine), wird das Muster geschrieben, die Optionen nicht.

Funktioniert es in VB.NET, JavaScript oder TypeScript?

In 1.0 nicht: nur C#. Andere Sprachen verwenden andere Engines; fragen Sie im Feedback-Repository, wenn Sie eine brauchen.

Wo melde ich ein Problem oder schlage eine Funktion vor?

Erstellen Sie ein Issue im Repository Feedback auf GitHub – dort gibt es Formulare für Fehler und Ideen (bitte ändern Sie vertrauliche Namen). Sie können auch die Registerkarte „Q&A“ im Marketplace verwenden.

Änderungsprotokoll

1.0.1

1.0.0