logo

Návod na regulárny výraz – Ako písať regulárne výrazy?

Regulárny výraz (regex) je postupnosť znakov, ktoré definujú vzor vyhľadávania. Tu je postup, ako písať regulárne výrazy:

  1. Začnite pochopením špeciálnych znakov používaných v regulárnych výrazoch, ako sú ., *, +, ? a ďalšie.
  2. Vyberte programovací jazyk alebo nástroj, ktorý podporuje regulárny výraz, napríklad Python, Perl alebo grep.
  3. Napíšte svoj vzor pomocou špeciálnych znakov a doslovných znakov.
  4. Použite vhodnú funkciu alebo metódu na vyhľadanie vzoru v reťazci.

Príklady:

  1. Ak chcete zodpovedať postupnosti doslovných znakov, jednoducho tieto znaky napíšte do vzoru.
  2. Ak chcete priradiť jeden znak z množiny možností, použite hranaté zátvorky, napr. [0123456789] sa zhoduje s ľubovoľnou číslicou.
  3. Ak chcete zodpovedať nule alebo viacerým výskytom predchádzajúceho výrazu, použite symbol hviezdičky (*).
  4. Ak chcete nájsť zhodu s jedným alebo viacerými výskytmi predchádzajúceho výrazu, použite symbol plus (+).
  5. 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>