Tester regulárních výrazů

Regulární výrazy s textem shody se vzorem pro ověření, hledání-nahrazení a analýzu protokolu. Před vložením do produkčního kódu otestujte vzory s živým zvýrazněním — vyhněte se katastrofickým překvapením při zpětném sledování při vstupu uživatele.

Jak otestovat regulární výraz

1. Zadejte vzor regulárního výrazu (bez vnějších lomítek nebo s příznaky).
2. Nastavit příznaky: g globální, i nerozlišují malá a velká písmena, m víceřádkové.
3. Vložte ukázkový text do oblasti testovacího řetězce.
4. Zkontrolujte shody, zachyťte skupiny a nahraďte náhled, pokud je k dispozici.

Příklady regulárních výrazů

Ověření e-mailem

^[\\w.-]+@[\\w.-]+\\.\\w+$ zachycuje jednoduché e-maily — není to dokonalé RFC, ale užitečné pro formuláře.

Extrahujte data ISO

\\d{4}-\\d{2}-\\d{2} najde v řádcích protokolu 2024-03-15 pro nahrazení grep.

Pomocník Slugify

Nahraďte [^a-z0-9]+ pomlčkou pro URL slug z řetězce názvu.

Když regulární výraz pomáhá

• Při ověřování strukturovaných řetězců (telefon, PSČ).
• Při analýze polostrukturovaných protokolů.
• Když se učíte zachycovat skupiny a nahlížet dopředu.

Povědomí o ReDoS

Vnořené kvantifikátory jako (a+)+ na zlém řetězci visí CPU — vyhněte se uživatelskému regulárnímu výrazu na serveru nebo použijte bezpečné motory s časovými limity.

Časté dotazy

Jaká příchuť regulárního výrazu?

JavaScript RegExp — existují rozdíly PCRE (podpora vzhledu se liší podle verze enginu).

Globální příznak g?

Najde všechny shody nejen jako první — testStateful s lastIndex v JS.

Uniknout speciálním znakům?

. * + ? [ ] ( ) { } | \\ ^ $ potřebuje escapování pro doslovnou shodu.

Zachytit skupiny?

Závorky ( ) vytvářejí očíslované skupiny přístupné za $1 $2.

Místní?

Ano.