Generator Regex z przykładu

Pisanie regexu ręcznie dla numeru zamówienia, numeru faktury czy daty jest żmudne i łatwo o pomyłkę. Wklej jeden przykładowy ciąg w formacie, który chcesz rozpoznawać: to narzędzie czyta go od lewej do prawej, zamienia każdy ciąg cyfr, wielkich i małych liter na klasę znaków o właściwej długości, a znaki interpunkcyjne i symbole zostawia jako znaki dosłowne. Otrzymujesz zakotwiczony wzorzec jako punkt wyjścia, który dopracowujesz ręcznie.

Jak to działa

  1. 1

    Wprowadź przykład

    Wpisz lub wklej jeden przykładowy ciąg reprezentujący format do rozpoznania, na przykład `Order #12345 placed on 2026-04-16`.

  2. 2

    Wygeneruj wzorzec

    Narzędzie przechodzi przez przykład znak po znaku i zastępuje każdy ciąg tego samego rodzaju znaku klasą znaków o jego długości.

  3. 3

    Przeczytaj rozbicie

    Pod wzorcem lista składników objaśnia każdy element, dzięki czemu widzisz, która część rozpoznała cyfry, litery czy tekst dosłowny.

  4. 4

    Skopiuj i dopracuj

    Użyj wzorca jako punktu wyjścia. Dostosuj ręcznie stałe długości lub klasy, aby objął pełny zakres Twoich rzeczywistych danych.

Jak budowany jest wzorzec

Narzędzie czyta przykład od lewej do prawej. Gdy natrafia na ciąg tego samego rodzaju znaku, emituje klasę znaków o rozmiarze tego ciągu:

  • ciąg cyfr staje się \d{n}, gdzie n to liczba cyfr
  • ciąg wielkich liter A-Z staje się [A-Z]{n}
  • ciąg małych liter a-z staje się [a-z]{n}
  • pojedyncza spacja staje się \s, a kilka spacji staje się \s{n}
  • wszystko inne (interpunkcja, symbole, litery z akcentem lub znaki spoza alfabetu łacińskiego) pozostaje jako dosłowny znak z ukośnikiem

Gotowy wzorzec jest zamknięty w ^ i $, aby rozpoznawał cały ciąg od początku do końca, a nie tylko fragment.

Przykład

Dla przykładu Order #12345 placed on 2026-04-16 narzędzie tworzy:

/^[A-Z]{1}[a-z]{4}\s\#\d{5}\s[a-z]{6}\s[a-z]{2}\s\d{4}\-\d{2}\-\d{2}$/

Order to jedna wielka litera, po której następują cztery małe; 12345 staje się \d{5}; a data 2026-04-16 staje się \d{4}\-\d{2}\-\d{2}.

Co robi, a czego nie robi

  • Długości są stałe. 12345 staje się \d{5}, co rozpoznaje dokładnie pięć cyfr, a nie „jedną lub więcej“. Jeśli liczba różni się w Twoich danych, zmień {5} ręcznie na + lub zakres jak {3,8}.
  • Działa na jednym przykładzie. Odwzorowuje strukturę jednego podanego ciągu, więc sam nie uogólni na podstawie wielu przykładów. Podaj mu najbardziej reprezentatywny ciąg.
  • Tylko A-Z i a-z liczą się jako litery. Znaki z akcentem i spoza alfabetu łacińskiego pozostają dosłowne; zamień je na klasę taką jak \w lub \p{L}, jeśli chcesz, aby rozpoznawały szerszy zbiór.
  • Regex nie wyrazi wszystkiego. Rzeczy takie jak zrównoważone nawiasy są poza zasięgiem każdego regexu, niezależnie od liczby przykładów. Do struktur zagnieżdżonych potrzebujesz parsera, a nie wzorca.

Dobry sposób pracy

  1. Wygeneruj wzorzec z jednego jasnego, reprezentatywnego przykładu.
  2. Poluzuj stałe długości ({5} staje się + lub {3,8}) tam, gdzie długość się zmienia.
  3. Wklej wzorzec do Testera Regex z większym zbiorem rzeczywistych ciągów.
  4. Dostosuj, aż będzie rozpoznawał wszystko, co powinien, i nic, czego nie powinien.

Najczęściej zadawane pytania

Jednego. Generator czyta jeden przykładowy ciąg i odwzorowuje jego strukturę. Wybierz ciąg, który najlepiej reprezentuje Twój format, a potem poszerz wzorzec ręcznie dla pozostałych przypadków.

Narzędzie liczy dokładne znaki w Twoim przykładzie, więc pięć cyfr staje się \d{5}. Jeśli liczba różni się w rzeczywistych danych, zamień {5} na +, * lub zakres jak {3,8}.

Kotwice sprawiają, że wzorzec rozpoznaje cały ciąg od początku do końca. Usuń je, jeśli chcesz szukać wzorca wewnątrz dłuższego tekstu.

Rozpoznaje A-Z i a-z jako litery. Każdy inny znak, w tym litery z akcentem, cyrylica czy CJK, pozostaje dosłowny. Zamień go ręcznie na klasę taką jak \w lub \p{L}, jeśli chcesz rozpoznawać więcej.

Standardową składnię (\d, [A-Z], {n}), która działa bez zmian w PCRE, JavaScript, Python i większości silników.

Powiązane narzędzia

Narzędzie jest dostępne w innych językach