Przejdź do treści

Regex z przykładów

Przekształć przykładowe ciągi znaków w wyrażenie regularne i zobacz, które przykłady pasują.

Wejście
Przykłady, które wzór NIE powinien pasować
Wynik

Regex z przykładów

Wklej kilka ciągów znaków, które wzór powinien pasować — jeden na linię — a to narzędzie wyprowadzi wyrażenie regularne, które oddaje ich wspólną strukturę. Poniżej wygenerowanego wzoru wymienione są wszystkie przykłady ze znacznikiem, dzięki czemu od razu widzisz, czy wynik naprawdę obejmuje to, co wkleiłeś.

Poziom generalizacji kontroluje, jak dosłownie są wyniki. Opcja "Dokładne znaki" zachowuje każdy znak w postaci, w jakiej jest, i łączy tylko różnie ukształtowane przykłady poprzez alternację. Opcja "Klasy znaków" zastępuje cyfry, litery i spacje wyrażeniami \d, \p{Lu}/\p{Ll} i \s, zachowując dokładne liczby powtórzeń z twoich przykładów. Opcja "Elastyczne kwantyfikatory" idzie dalej i zmienia te szeregi na dopasowania "jeden lub więcej", co lepiej generalizuje, ale również pasuje do więcej niż twoich próbek. Zakotwiczenie dodaje ^ i $ tak, aby cały ciąg znaków musiał pasować zamiast tylko podciągu, rozróżnianie wielkości liter kontroluje, czy wielkość liter ma znaczenie, a nazwane grupy owijają zmienne części wzoru, abyś mógł je później wyodrębnić po nazwie. Opcja dialektu dostosowuje sposób zapisywania nazwanych grup dla JavaScript, PCRE lub Python, ponieważ te trzy nie zgadzają się na tej składnię.

Wklej ciągi znaków, które wzór NIE powinien pasować, do drugiego pola, a narzędzie sprawdzi wygenerowany wzór także względem nich — wszystkie negatywne przykłady, które wciąż pasują, zostaną oznaczone, co jest najszybszym sposobem na złapanie wzoru, który jest zbyt szeroki. Włącz wyjaśnienie, aby uzyskać wzór podzielony na poszczególne części z prostym opisem tego, co robi każda część.

Wszystko działa lokalnie w twojej przeglądarce: przykłady, które wklejasz, negatywne przykłady i wygenerowany wzór nigdy nie opuszczają twojego urządzenia. Skopiuj wynik, pobierz go jako plik .txt lub wyślij dane wyjściowe z powrotem na wejście i usprawnij je na podstawie więcej przykładów.

Częste pytania

Czy wygenerowany regex zawsze pasuje do wszystkich przykładów, które wkleiłem?
Tak — wzór jest zbudowany bezpośrednio z twoich przykładów, więc jest zaprojektowany tak, aby pasował do wszystkich nich na wybranym poziomie ścisłości. Jeśli twoje przykłady mają naprawdę różne kształty, narzędzie wracza do dopasowywania jednej z różnych form.
Co dokładnie zmienia "Klasy znaków"?
Zastępuje ciągi cyfr, liter i spacji ich klasą regex (\d, \p{Lu}, \p{Ll}, \s) zamiast znaków dosłownych, zachowując dokładną liczbę powtórzeń widocznych w twoich przykładach — tak więc "AB12" staje się \p{Lu}{2}\d{2}, a nie dosłownie "AB12".
Dlaczego wzór również pasował do jednego z moich negatywnych przykładów?
Negatywne dopasowanie zwykle oznacza, że generalizacja jest szersze niż twój zamiar — spróbuj bardziej rygorystycznego poziomu, włącz zakotwiczenie lub dodaj bardziej konkretny przykład negatywny, aby zobaczyć dokładnie to, co umknęło.
Czy wzór będzie działać dokładnie tak samo w Pythonie lub PCRE?
Klasy znaków i kwantyfikatory są wspólne dla dialektów, ale składnia nazwanych grup różni się — opcja dialektu tylko dostosowuje sposób wyświetlania tych grup (JavaScript używa (?<name>…), PCRE i Python tradycyjnie używają (?P<name>…)); zawsze przetestuj wynik na swoim rzeczywistym silniku.
Czy moje przykładowe ciągi znaków są gdzieś przesyłane?
Nie. Wzór jest generowany całkowicie w twojej przeglądarce — twoje przykłady i wygenerowany regex nigdy nie opuszczą twojego urządzenia.