Regulárny výraz (regex) je postupnosť znakov, ktoré definujú vzor vyhľadávania. Tu je postup, ako písať regulárne výrazy:
- Začnite pochopením špeciálnych znakov používaných v regulárnych výrazoch, ako sú ., *, +, ? a ďalšie.
- Vyberte programovací jazyk alebo nástroj, ktorý podporuje regulárny výraz, napríklad Python, Perl alebo grep.
- Napíšte svoj vzor pomocou špeciálnych znakov a doslovných znakov.
- Použite vhodnú funkciu alebo metódu na vyhľadanie vzoru v reťazci.
Príklady:
- Ak chcete zodpovedať postupnosti doslovných znakov, jednoducho tieto znaky napíšte do vzoru.
- Ak chcete priradiť jeden znak z množiny možností, použite hranaté zátvorky, napr. [0123456789] sa zhoduje s ľubovoľnou číslicou.
- Ak chcete zodpovedať nule alebo viacerým výskytom predchádzajúceho výrazu, použite symbol hviezdičky (*).
- Ak chcete nájsť zhodu s jedným alebo viacerými výskytmi predchádzajúceho výrazu, použite symbol plus (+).
- Je dôležité poznamenať, že regulárny výraz môže byť zložitý a ťažko čitateľný, preto sa na ladenie a optimalizáciu vzorov odporúča použiť nástroje, ako sú testery regulárnych výrazov.
Regulárny výraz (niekedy nazývaný racionálny výraz) je postupnosť znakov, ktoré definujú vyhľadávací vzor, najmä na použitie pri porovnávaní vzorov s reťazcami alebo pri porovnávaní reťazcov, t. j. pri podobných operáciách hľadania a nahradenia. Regulárne výrazy predstavujú zovšeobecnený spôsob spájania vzorov so sekvenciami znakov. Používa sa vo všetkých programovacích jazykoch ako C++, Java a Python.
Čo je regulárny výraz a prečo je taký dôležitý?
Regex sa používa v Google Analytics pri zhode adries URL pri podpore vyhľadávania a nahradenia v najpopulárnejších editoroch, ako sú Sublime, Notepad++, Brackets, Dokumenty Google a Microsoft Word.
Example : Regular expression for an email address : ^([a-zA-Z0-9_-.]+)@([a-zA-Z0-9_-.]+).([a-zA-Z]{2,5})$> Vyššie uvedený regulárny výraz možno použiť na kontrolu, či daná sada znakov je e-mailová adresa alebo nie.
Ako písať regulárne výrazy?
Existujú určité prvky používané na písanie regulárnych výrazov, ako je uvedené nižšie:
1. Opakovače ( *, + a { } )
Tieto symboly fungujú ako opakovače a informujú počítač, že predchádzajúci znak sa má použiť viac ako len raz.
avl rotácia stromu
2. Symbol hviezdičky ( * )
Informuje počítač, aby 0 alebo viackrát (až do nekonečna) zodpovedal predchádzajúcemu znaku (alebo skupine znakov).
Example : The regular expression ab*c will give ac, abc, abbc, abbbc….and so on>
3. Symbol plus ( + )
Hovorí počítaču, aby opakoval predchádzajúci znak (alebo skupinu znakov) aspoň raz alebo viackrát (až do nekonečna).
Example : The regular expression ab+c will give abc, abbc, abbbc, … and so on.>
4. Zložené zátvorky { … }
Hovorí počítaču, aby opakoval predchádzajúci znak (alebo skupinu znakov) toľkokrát, koľkokrát je hodnota v tejto zátvorke.
Example : {2} means that the preceding character is to be repeated 2 times, {min,} means the preceding character is matches min or more times. {min,max} means that the preceding character is repeated at least min & at most max times.> 5. Zástupný znak ( .)
Symbol bodky môže nahradiť akýkoľvek iný symbol, preto sa nazýva zástupný znak.
Example : The Regular expression .* will tell the computer that any character can be used any number of times.>
6. Voliteľný znak ( ? )
Tento symbol informuje počítač o tom, že predchádzajúci znak môže alebo nemusí byť prítomný v reťazci, ktorý sa má porovnať.
Example : We may write the format for document file as – docx? The ‘?’ tells the computer that x may or may not be present in the name of file format.>
7. Symbol vsuvky ( ^ ). ( Nastavenie pozície pre zápas)
Symbol vsuvky informuje počítač, že zhoda musí začať na začiatku reťazca alebo riadku.
java reťazec s formátom
Example : ^d{3} will match with patterns like '901' in '901-333-'.> 8. Symbol dolára ( $ ).
oops v jave
Hovorí počítaču, že zhoda musí nastať na konci reťazca alebo pred na konci riadku alebo reťazca.
Example : -d{3}$ will match with patterns like '-333' in '-901-333'.> 9. Triedy postáv
Trieda znakov sa zhoduje s ktorýmkoľvek z množiny znakov. Používa sa na priradenie najzákladnejšieho prvku jazyka, ako je písmeno, číslica, medzera, symbol atď.
s : zhoduje sa so všetkými znakmi medzier, ako je medzera a tabulátor.
S : zhoduje sa so všetkými znakmi bez medzier.
d : zodpovedá ľubovoľnému číselnému znaku.
D: sa zhoduje so všetkými nečíslicovými znakmi.
In : zhoduje sa s ľubovoľným znakom slova (v podstate alfanumerický)
IN : zhoduje sa s akýmkoľvek neslovným znakom.
: zhoduje sa s akýmkoľvek ohraničením slova (to by zahŕňalo medzery, pomlčky, čiarky, bodkočiarky atď.
[množina_znakov]: Zhoduje sa s ktorýmkoľvek jedným znakom v súbore_znakov. V predvolenom nastavení sa pri zhode rozlišujú malé a veľké písmená.
Example : [abc] will match characters a,b and c in any string.>
10. [^set_of_characters] Negácia:
Zodpovedá akémukoľvek jednotlivému znaku, ktorý nie je v súbore_znakov. V predvolenom nastavení sa pri zhode rozlišujú malé a veľké písmená.
Example : [^abc] will match any character except a,b,c .>
11. [prvý-posledný] Rozsah znakov:
Zodpovedá akémukoľvek jednotlivému znaku v rozsahu od prvého po posledný.
Example : [a-zA-z] will match any character from a to z or A to Z.>
12. Symbol úniku ( )
Ak chcete nájsť zhodu so skutočnými znakmi „+“, „.“ atď., pridajte pred tento znak opačnú lomku ( ). To povie počítaču, aby nasledujúci znak považoval za vyhľadávací znak a považoval ho za zodpovedajúci vzor.
Example : d+[+-x*]d+ will match patterns like '2+2' and '3*9' in '(2+2) * 3*9'.>
13. Zoskupovanie znakov ( )
Množinu rôznych symbolov regulárneho výrazu je možné zoskupiť, aby fungovali ako jedna jednotka a správali sa ako blok, na tento účel musíte regulárny výraz zabaliť do zátvoriek ().
Example : ([A-Z]w+) contains two different elements of the regular expression combined together. This expression will match any pattern containing uppercase letter followed by any character.>
14. Vertikálny pruh ( | )
Zhoduje sa s ktorýmkoľvek prvkom oddeleným zvislou čiarou (|).
Example : th(e|is|at) will match words - the, this and that.>
15. číslo
Spätná referencia: umožňuje, aby sa predtým zhodný podvýraz (výraz zachytený alebo uzavretý v kruhových zátvorkách) následne identifikoval v rovnakom regulárnom výraze. znamená, že skupina v n-tej zátvorke sa bude opakovať na aktuálnej pozícii.
avl strom
Example : ([a-z])1 will match ee in Geek because the character at second position is same as character at position 1 of the match.>
16. Ako ( ?# komentár )
Vložený komentár: Komentár končí v prvej zátvorke.
Example : A(?#This is an inline comment)w+>
17. # [do konca riadku]
Komentár v režime X. Komentár začína znakom # a pokračuje až do konca riadku.
Example : (?x)Aw+#Matches words starting with A>