Preskočiť na obsah

Regex escape

Escapovať znaky so špeciálnym významom v regulárnom výraze, aby sa text zhodoval doslova.

Vstup
Výstup

Regex escape

Regulárny výraz spracúva znaky ako . * + ? ^ $ { } ( ) | [ ] a \ ako inštrukcie, nie ako literálny text. Ak vložíte názov súboru, cenu, adresu URL alebo akýkoľvek reťazec, ktorý obsahuje jeden z týchto znakov, nástroj escapuje všetky špeciálne znaky spätnou lomítkom tak, aby sa výsledok zhodoval s presným textom — nič viac, nič menej. Keď prepnete smer na unescape, proces sa zvráti a spätné lomítka sa odstránia, čím sa znovuobjaví pôvodný reťazec.

Možnosť dialektu určuje, ktoré znaky sa naozaj musia escapovať. JavaScript a PCRE zdieľajú rovnaký základ metaznakov, takže vzor vytvorený pre jeden funguje rovnako v druhom. POSIX Basic Regular Expressions — štandardný pre klasický grep a sed — sú užší: znaky + ? { } ( ) a | sú tam bežné literálne znaky, nie metaznaky, takže sa neunikajú. Zapnite možnosť „Escapovať aj oddeľovač (/)“, keď sa vzor bude písať medzi lomítka, ako /vzor/, aby literálne / nerušilo koniec vzora.

Dve možnosti spracúvavajú viacnásobky vstupov. Možnosť „Každý riadok ako vlastný vzor“ obalí každý riadok znakmi ^ a $, čím sa zoznam reťazcov zmení na vzory zhodujúce sa s celým riadkom — užitočné pri vytváraní zoznamov povolených alebo zakázaných záznamov. Možnosť „Spojiť riadky do jednej alternatívy“ ide ďalej a kombinuje všetky riadky do jednej skupiny (?:a|b|c) pripravené na priame vloženie do regulárneho výrazu. Unescape obe operácie zvráti: rozdelí alternatívu späť na riadky a odstráni ukotvenia.

Všetko beží lokálne v prehliadači. Text a vzory, ktoré vložíte — vrátane názvov súborov, tokenov alebo ciest — nie sú nikdy poslané nikam; escape sa deje výhradne na vašom zariadení.

Časté otázky

Ktoré znaky nástroj escapuje?
Metaznaky regulárneho výrazu . * + ? ^ $ { } ( ) | [ ] a \. Presne ktoré z nich vyžadujú spätné lomítko, závisí od zvoleného dialektu — napríklad POSIX BRE spracúva znaky + ? { } ( ) a | ako už literálne.
Aký je rozdiel medzi dialektmi JavaScript, PCRE a POSIX?
JavaScript a PCRE (Perl-kompatibilný regulárny výraz používaný mnohými jazykmi a nástrojmi) zdieľajú rovnaký súbor metaznakov pre escape. POSIX tu znamená Basic Regular Expression, štandardný pre klasický grep a sed, kde znaky + ? { } ( ) a | sú bežné znaky, nie metaznaky — takže sa neunikajú.
Čo produkuje možnosť "Spojiť riadky do jednej alternatívy"?
Escapuje každý riadok a kombinuje ich do jednej skupiny ako (?:mačka|pes|vták), pripravená na použitie ako jeden vzor, ktorý sa zhoduje s ktorýmkoľvek z riadkov. Prepnutie na unescape rozdelí vzor v tejto podobe späť na jednotlivé riadky.
Môže unescape kedykoľvek zlyhať alebo vyvolať chybu?
Nie. Unescape iba odstráni spätné lomítko, ktoré sa nachádza priamo pred uznaným špeciálnym znakom; akákoľvek iná sekvencia spätného lomítka alebo chybne formátovaný wrapper alternatívy je ponechané presne tak, ako je napísané, namiesto vyvolania chyby.
Je môj text niekde nahraný?
Nie. Escape a unescape sa vykonávajú úplne v prehliadači — nič, čo vložíte, sa neposiela na server.