Všechny nástroje

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.
Vzor
Příznaky
Testovací text
Výstup
[0] Hello [6] world [12] 123

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.

Kdy se vyhnout regulárnímu výrazu

Při analýze HTML nebo JSON — používejte správné analyzátory.
Když se regulární výraz stane nečitelným — rozdělit na logiku kódu.
Když ReDoS riskuje na vzorech zadaných uživatelem na serveru — časový limit a omezení délky.

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.

Ověřit vs extrakt

Ukotvený vzor ^...$ ověří celý řetězec; neukotvený najde podřetězec kdekoli.

Nahradit v editorech

Kód VS používá podobný regulární výraz JS ve funkci find-replace — otestujte zde a poté vložte vzor.

Č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.

Víceřádkový ^ $?

příznak m způsobí, že ^ $ odpovídá hranicím řádku ne celému řetězci.