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](../../regexsmith/marketplace/hero.png)
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 über einem Muster in C#: das Muster mit farbigen Gruppen, eine Zeile pro Teil in einfachen Worten, farbige Gruppenetiketten und ein Status – ✓ sicher, ⚠ kann hängen oder ✕ ungültig.
- Gruppenunterstreichungen: eine dünne Linie in der Farbe der Gruppe unter jeder Erfassungsgruppe direkt im Code; verschachtelte Gruppen liegen tiefer.
- Beispiele aus dem Muster – zwei Zeichenfolgen, die passen, und eine, die nicht passt – geprüft von der echten .NET-Engine.
- RX001: eine Wellenlinie unter Wiederholungen, die exponentielle Zeit brauchen können, mit Korrekturen in Ctrl+. und einer Vorher-Nachher-Vorschau.
- Der RegexSmith-Tester, angedockt neben den Suchergebnissen: Ihre Beispiele mit ✓/✗-Erwartungen, hervorgehobene Treffer und Gruppen, eine Gruppentabelle und eine Registerkarte Ersetzen.
- Auf Code anwenden: Das bearbeitete Muster kommt in dieselbe Art von Zeichenfolgenliteral zurück, mit seinen Optionen, als ein einziges Rückgängig.
- Als Komponententest kopieren für xUnit, NUnit oder MSTest – Ihre Beispiele werden zu Testfällen.
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.

Wo sie funktioniert
In C#-Dateien über dem Muster von:
new Regex("…"), mit oder ohneRegexOptions;- den statischen Methoden
Regex.IsMatch,Match,Matches,Replace,SplitundCount; [GeneratedRegex("…")];[RegularExpression("…")]– die Karte zeigt dann Validierung: Der gesamte Wert muss passen;- einem
const stringin derselben Datei, den einer davon verwendet.
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 Bildschirm | Bedeutung |
|---|---|
| RegexSmith · Regulärer .NET-Ausdruck · IgnoreCase | Die Art des Musters und die aus dem Aufruf gelesenen Optionen, rechts der Status. |
| Das Muster | Die 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 Ziffern | Eine 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. |
| Gruppenetiketten | Name 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 Bildschirm | Bedeutung |
|---|---|
| ✓ sicher | .NET akzeptiert das Muster, und nichts darin kann katastrophales Backtracking auslösen. |
| ⚠ kann hängen | Eine Wiederholung kann bei langen Eingaben, die fast passen, exponentielle Zeit brauchen; die Karte nennt die Art (RX001) und dass Ctrl+. Korrekturen anbietet. |
| ✕ ungültig | Die 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](../../regexsmith/marketplace/backtracking.png)
Was unterstrichen wird (RX001)
- Verschachtelte Wiederholung:
(a+)+,([a-z0-9]+\.?)+– eine Folge gleicher Zeichen lässt sich auf sehr viele Arten zwischen innerer und äußerer Wiederholung aufteilen. - Wiederholung von Alternativen, die dieselben Zeichen treffen:
(\w|\d)+– eine Ziffer kann von jedem der beiden Zweige genommen werden, also verdoppelt jede Ziffer die Arbeit.
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.
| Korrektur | Was 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.

Öffnen
- ▶ Muster testen… in der Hover-Karte;
- Ctrl+. auf einem Muster › Dieses Muster in RegexSmith testen;
- Rechtsklick in einer C#-Datei › Regex-Muster testen;
- Ansicht › Weitere Fenster › RegexSmith-Tester – nicht mit Code verknüpft: ein Ort, um ein Muster auszuprobieren.
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 Bildschirm | Bedeutung |
|---|---|
| ✓ | 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.
| Option | Standard |
|---|---|
| Muster beim Daraufzeigen erklären | ein |
| Erfassungsgruppen unterstreichen | ein |
| RX001 Katastrophales Backtracking | ein |
| Um eine Bewertung im Marketplace bitten | ein |
Unten: Auf Standard zurücksetzen, Dokumentation, Im Marketplace bewerten und Feedback senden.
Die Einstellungen werden in %LocalAppData%\RegexSmith gespeichert.

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
- Hinweise im Editor haben eine eigene Liste auf der Optionsseite, und ein Link im Tooltip schaltet eine Art von Hinweis direkt dort ab, wo Sie ihn sehen.
1.0.0
- Erste Version: die Hover-Karte mit einer Aufschlüsselung in einfachen Worten, farbigen Gruppen, von der .NET-Engine geprüften Beispielen und einem Status; Gruppenunterstreichungen im Code; RX001 für Muster, die hängen können, mit Korrekturen per atomarer Gruppe und NonBacktracking in Ctrl+.; der RegexSmith-Tester mit Erwartungen, Gruppen, Ersetzen, „Als Komponententest kopieren“ und „Auf Code anwenden“; eine einmalige Bitte um eine Bewertung.