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.