RegexSmith
Wyrażenia regularne objaśniane i testowane tam, gdzie są napisane. Najedź na wzorzec w C#, a zobaczysz po jednym wierszu na każdy fragment prostymi słowami, grupy w kolorze i pasujące ciągi; wzorce, które mogą się zawiesić, są podkreślone; sprawdzaj własne przykłady w oknie Tester RegexSmith i zapisuj wzorzec z powrotem jednym kliknięciem.
Bezpłatnie · Visual Studio 2022 i 2026 · 14 języków interfejsu · bez telemetrii
Dlaczego RegexSmith
![Karta po najechaniu na wzorzec [GeneratedRegex]: wzorzec z kolorowymi grupami, po wierszu na każdy fragment prostymi słowami, pasujące przykłady i jeden niepasujący oraz stan ✓ bezpieczny](../../regexsmith/marketplace/hero.png)
Proste słowa, nie lekcja składni
^(?<year>\d{4})-(?<id>\d{1,5})$ zamienia się w „Początek tekstu”, „Liczba cyfr: dokładnie 4”, „Liczba cyfr: od 1 do 5” — po wierszu na każdy fragment, zagnieżdżone pod swoją grupą, każda grupa we własnym kolorze.
Sprawdzane prawdziwym silnikiem
Przykłady na karcie i każdy wynik w testerze pochodzą z samego silnika wyrażeń regularnych .NET, z opcjami wywołania. To, co widzisz, zrobi Twoja aplikacja.
Wzorce, które mogą się zawiesić
([a-z0-9]+\.?)+ wygląda niewinnie, a może zamrozić żądanie na długim ciągu, który prawie pasuje. RegexSmith podkreśla takie powtórzenia i naprawia je przez Ctrl+.
Bezpłatnie, bez haczyków
Bez subskrypcji, bez wersji „pro”, bez zbierania danych i bez komunikatów w oknie „Dane wyjściowe” ani przy uruchamianiu. Wzorce i przykłady zostają na Twoim komputerze. Jedyne, o co kiedykolwiek poprosimy — gdy już przez jakiś czas będziesz z niego korzystać — to ocena w Marketplace. Działa w Visual Studio 2022 i 2026, x64 i ARM64.
Funkcje
- Karta po najechaniu na wzorzec w C#: wzorzec z kolorowymi grupami, po wierszu na każdy fragment prostymi słowami, kolorowe etykiety grup i stan — ✓ bezpieczny, ⚠ może się zawiesić lub ✕ nieprawidłowy.
- Podkreślenia grup: cienka linia w kolorze grupy pod każdą grupą przechwytującą bezpośrednio w kodzie; grupy zagnieżdżone leżą niżej.
- Przykłady utworzone na podstawie wzorca — dwa pasujące ciągi i jeden niepasujący — sprawdzone prawdziwym silnikiem .NET.
- RX001: falista linia pod powtórzeniami, które mogą trwać wykładniczo długo, z poprawkami w Ctrl+. i podglądem przed/po.
- Tester RegexSmith, zadokowany obok okna „Wyniki wyszukiwania”: Twoje przykłady z oczekiwaniami ✓/✗, wyróżnione dopasowania i grupy, tabela grup i karta Zamiana.
- Zastosuj w kodzie: zmieniony wzorzec wraca do literału ciągu tego samego rodzaju, razem z opcjami, jako jedna operacja Cofnij.
- Kopiuj jako test jednostkowy dla xUnit, NUnit lub MSTest — Twoje przykłady stają się przypadkami testowymi.
Karta po najechaniu
Najedź na ciąg wzorca, a w zwykłej etykiecie narzędzia Visual Studio pojawi się karta RegexSmith: co oznacza wzorzec, do czego pasuje i czy jest bezpieczny.

Gdzie działa
W plikach C#, nad wzorcem w:
new Regex("…"), zRegexOptionslub bez;- metodach statycznych
Regex.IsMatch,Match,Matches,Replace,SplitiCount; [GeneratedRegex("…")];[RegularExpression("…")]— karta pisze wtedy Walidacja: musi pasować cała wartość;const stringw tym samym pliku, której używa jedno z nich.
Zwykłe, dosłowne (@"…") i surowe ("""…""") ciągi są odczytywane tak, jak odczytuje je kompilator, więc "\\d" i @"\d" to ten sam wzorzec.
Co pokazuje karta
| Na ekranie | Znaczenie |
|---|---|
| RegexSmith · Wyrażenie regularne .NET · IgnoreCase | Rodzaj wzorca i opcje odczytane z wywołania, a po prawej stan. |
| Wzorzec | Nawiasy każdej grupy przechwytującej w jej kolorze, zawartość podkreślona tym kolorem; tekst zachowuje kolor motywu, więc pozostaje czytelny. |
| Liczba cyfr: dokładnie 4 | Po wierszu na każdy fragment prostymi słowami — „Początek tekstu”, „Jeden z tekstów: “jpg”, “png””, „Liczba cyfr: od 1 do 5” — zagnieżdżone pod swoją grupą. Bardzo długi wzorzec kończy się wierszem … jeszcze N. |
| Etykiety grup | Nazwa lub numer każdej grupy na etykiecie w jej kolorze — w tych samych kolorach co we wzorcu i pod kodem. |
| ✓ Pasuje: … ✗ Nie pasuje: … | Dwa pasujące ciągi i jeden niepasujący, utworzone na podstawie wzorca i sprawdzone prawdziwym silnikiem .NET. Spacje są widoczne jako blade kropki. |
| ▶ Testuj wzorzec… | Otwiera wzorzec w testerze RegexSmith. |
Stan
| Na ekranie | Znaczenie |
|---|---|
| ✓ bezpieczny | .NET akceptuje wzorzec i nic w nim nie może spowodować katastrofalnego nawracania. |
| ⚠ może się zawiesić | Powtórzenie może trwać wykładniczo długo na długich danych, które prawie pasują; karta podaje rodzaj problemu (RX001) i informuje, że Ctrl+. oferuje poprawki. |
| ✕ nieprawidłowy | Silnik odrzuca wzorzec; karta pokazuje jego komunikat: .NET nie akceptuje tego wzorca: … |
„Bezpieczny” oznacza tylko tyle: .NET akceptuje wzorzec i nie może się on zawiesić. Nie oznacza, że pasuje do tego, co zamierzasz — od tego są przykłady i tester.
Podkreślenia grup
Każda grupa przechwytująca wzorca dostaje cienką linię w swoim kolorze bezpośrednio w kodzie — w tym samym kolorze co na karcie. Długi wzorzec z pięcioma grupami można odczytać jednym spojrzeniem: która część to rok, a która identyfikator.
Grupa wewnątrz innej leży nieco niżej, więc obie linie pozostają widoczne. Kolory idą po kolei: łososiowy, zielony, niebieski, fioletowy, bursztynowy, morski — i od nowa.
Podkreślenia można wyłączyć w ustawieniach: Podkreślaj grupy przechwytywania.
Wzorce, które mogą się zawiesić
Niektóre wzorce działają wykładniczo długo na długim ciągu, który prawie pasuje — klasyczny sposób, w jaki wyrażenie regularne zamraża żądanie sieciowe. RegexSmith rozpoznaje je po kształcie i umieszcza falistą linię ostrzeżenia pod powtórzeniem; najedź na nią, aby poznać przyczynę.
![Falista linia RX001 pod ([a-z0-9]+\.?)+ z otwartym menu Ctrl+. i podglądem poprawki: stary wzorzec przekreślony, nowy z grupą atomową](../../regexsmith/marketplace/backtracking.png)
Co jest podkreślane (RX001)
- Zagnieżdżone powtórzenie:
(a+)+,([a-z0-9]+\.?)+— jeden ciąg tych samych znaków można podzielić między powtórzenie wewnętrzne i zewnętrzne na bardzo wiele sposobów. - Powtórzenie alternatyw pasujących do tych samych znaków:
(\w|\d)+— cyfrę może przejąć każda z gałęzi, więc każda cyfra podwaja pracę.
Nie wewnątrz grup atomowych ani asercji wyprzedzających i wstecznych, i nigdy z RegexOptions.NonBacktracking — tam nie może to wystąpić.
Poprawki w Ctrl+.
Ustaw kursor na falistej linii i naciśnij Ctrl+. — każda poprawka pokazuje podgląd: wzorzec przed (przekreślony) i po.
| Poprawka | Co robi |
|---|---|
| Uczyń wewnętrzne powtórzenie atomowym: (?>…) | Otacza wewnętrzne powtórzenie konstrukcją (?>…). Pasują te same ciągi; powtórzenia nie da się już podzielić na wiele sposobów. |
| Użyj RegexOptions.NonBacktracking (.NET 7+) | Dodaje opcję do wywołania. Czas liniowy dla dowolnych danych; wymaga .NET 7 lub nowszego. Oferowana tylko wtedy, gdy wzorzec na to pozwala — bez odwołań wstecznych, asercji wyprzedzających i wstecznych, grup atomowych i równoważących oraz warunków. |
| Testuj ten wzorzec w RegexSmith | Otwiera wzorzec w testerze — oferowane nad każdym wzorcem, nie tylko ryzykownym. |
RX001 można wyłączyć w ustawieniach (Wskazówki w edytorze) lub linkiem Nie pokazuj tego rodzaju wskazówek w jego etykietce; poprawki w Ctrl+. zostają.
Tester
Tester RegexSmith otwiera się zadokowany obok okna „Wyniki wyszukiwania”. Wzorzec pochodzi z kodu i pozostaje z nim połączony: wypróbuj go na własnych przykładach, zmień i zapisz z powrotem.

Jak otworzyć
- ▶ Testuj wzorzec… na karcie po najechaniu;
- Ctrl+. na wzorcu › Testuj ten wzorzec w RegexSmith;
- kliknięcie prawym przyciskiem w pliku C# › Testuj wzorzec wyrażenia regularnego;
- Widok › Inne okna › Tester RegexSmith — bez połączenia z kodem: miejsce do wypróbowania wzorca.
Wzorzec i jego opcje
U góry plik i wiersz wzorca — kliknij, aby tam przejść. Poniżej pole wzorca, wiersz stanu (✓ bezpieczny, ⚠ może się zawiesić lub błąd silnika, a potem N z M zgodnie z oczekiwaniami · ms) i przełączniki opcji: IgnoreCase, Multiline, Singleline, IgnorePatternWhitespace, ExplicitCapture, RightToLeft, CultureInvariant. Każda zmiana od razu uruchamia sprawdzanie ponownie.
Przykłady i oczekiwania
Za pierwszym razem są tam przykłady z karty: dwa, które powinny pasować, i jeden, który nie powinien. Wpisz nowy w polu Dodaj przykład i naciśnij Enter…; kliknij przykład, aby go edytować, ✕ go usuwa. Znak przed każdym przykładem mówi, co powinien robić — kliknij go, aby zmienić:
| Na ekranie | Znaczenie |
|---|---|
| ✓ | ma pasować |
| ✗ | nie ma pasować |
| – | bez oczekiwań, tylko pokaż |
Przykład, który zachowuje się odwrotnie, robi się czerwony — ✗ pasuje lub ✗ nie pasuje — dzięki czemu przykłady stają się małą specyfikacją wzorca. Dopasowania są zabarwione, grupy podkreślone w swoich kolorach, spacje pokazane jako kropki. Sprawdzanie trwające dłużej niż 1 sekundę zatrzymuje się z komunikatem ⏱ zbyt wolno.
Grupy wybranego przykładu wymienia każde dopasowanie wybranego przykładu: całe dopasowanie, a potem każdą grupę z jej wartością i pozycją (nie przechwycono, gdy grupa nie brała udziału).
Zamiana
Karta Zamiana dodaje pole zamiany — $1, ${name}, $$ dla $ — i pokazuje wynik dla każdego przykładu tak, jak zrobiłby to Regex.Replace.
Kopiuj, przywróć, zastosuj
Kopiuj jako test jednostkowy umieszcza w schowku test z Twoimi przykładami dla xUnit, NUnit lub MSTest — specyfikacja przenosi się do projektu testowego.
Przywróć wraca do wzorca i opcji z kodu; przykłady zostają.
Zastosuj w kodzie zapisuje wzorzec z powrotem jako literał tego samego rodzaju, jakim był (zwykły, dosłowny lub surowy), razem z opcjami — jedno Cofnij wycofuje zmianę. Jeśli ten kod zmienił się po otwarciu go w testerze, nic nie jest zapisywane: otwórz tester z wzorca ponownie.
Przykłady są zapamiętywane dla każdego wzorca i każdego rozwiązania w %LocalAppData%\RegexSmith\samples, więc następnym razem już tam są. Nic nie trafia do repozytorium.
Ustawienia
Narzędzia › Opcje › SmithWorks › RegexSmith. Każda opcja ma krótki opis tego, co robi.
| Opcja | Domyślnie |
|---|---|
| Objaśniaj wzorce po najechaniu | wł. |
| Podkreślaj grupy przechwytywania | wł. |
| RX001 Katastrofalne nawracanie | wł. |
| Proś o ocenę w Marketplace | wł. |
Na dole: Przywróć domyślne, Dokumentacja, Oceń w Marketplace i Wyślij opinię.
Ustawienia są przechowywane w %LocalAppData%\RegexSmith.

FAQ
Czy RegexSmith wysyła jakiekolwiek dane?
Nie. Wzorce są odczytywane z otwartego dokumentu i uruchamiane na Twoim komputerze; przykłady są przechowywane w %LocalAppData%\RegexSmith. Bez żądań sieciowych, bez telemetrii.
Karta pisze „✓ bezpieczny”. Czy wzorzec jest poprawny?
Niekoniecznie. „Bezpieczny” oznacza, że .NET akceptuje wzorzec i żadne powtórzenie w nim nie może spowodować katastrofalnego nawracania. Czy pasuje do tego, co zamierzasz, mają pokazać przykłady: oznacz je ✓ lub ✗ w testerze.
Dlaczego nad moim wzorcem nie ma karty?
Karta pojawia się nad literałem ciągu, o którym RegexSmith wie, że jest wzorcem: argumentem new Regex, statycznej metody Regex, [GeneratedRegex] lub [RegularExpression] albo stałą z tego samego pliku używaną w tych miejscach. Wzorca budowanego w czasie wykonania (sklejanego, odczytywanego z ustawień) nie da się odczytać. Sprawdź też opcję Objaśniaj wzorce po najechaniu w ustawieniach.
Który silnik wyrażeń regularnych jest używany?
Silnik wyrażeń regularnych .NET, na którym działa samo Visual Studio, z opcjami wywołania. RegexOptions.NonBacktracking (.NET 7+) też jest odczytywane z wywołania; przykłady są wtedy uruchamiane na zwykłym silniku, a pasują te same ciągi w obu przypadkach.
„Zastosuj w kodzie” nic nie zrobiło.
Kod wzorca zmienił się po otwarciu go w testerze, więc RegexSmith nie zapisuje w miejscu, w którym wzorca może już nie być — tester informuje o tym pod przyciskami. Otwórz tester z wzorca ponownie. Gdy w kodzie nie ma miejsca na opcje ([RegularExpression] ich nie przyjmuje), wzorzec zostaje zapisany, a opcje nie.
Czy działa w VB.NET, JavaScript lub TypeScript?
Nie w wersji 1.0: tylko C#. Inne języki używają innych silników; jeśli potrzebujesz któregoś z nich, napisz w repozytorium Feedback.
Gdzie zgłosić problem lub zaproponować funkcję?
Otwórz zgłoszenie w repozytorium Feedback na GitHubie — są tam formularze dla błędów i pomysłów (prosimy zmienić prywatne nazwy). Możesz też skorzystać z karty Q&A w Marketplace.
Historia zmian
1.0.1
- Wskazówki w edytorze mają własną listę na stronie opcji, a link w etykietce narzędzia wyłącza dany rodzaj wskazówek tam, gdzie go widzisz.
1.0.0
- Pierwsze wydanie: karta po najechaniu z rozbiorem prostymi słowami, kolorowymi grupami, przykładami sprawdzanymi silnikiem .NET i stanem; podkreślenia grup w kodzie; RX001 dla wzorców, które mogą się zawiesić, z poprawkami przez grupę atomową i NonBacktracking w Ctrl+.; Tester RegexSmith z oczekiwaniami, grupami, kartą „Zamiana” oraz przyciskami „Kopiuj jako test jednostkowy” i „Zastosuj w kodzie”; jednorazowa prośba o ocenę.