logo

Tutorial Regex – Cum se scrie expresii regulate?

O expresie regulată (regex) este o secvență de caractere care definește un model de căutare. Iată cum să scrieți expresii regulate:

  1. Începeți prin a înțelege caracterele speciale folosite în regex, cum ar fi ., *, +, ? și multe altele.
  2. Alegeți un limbaj de programare sau un instrument care acceptă regex, cum ar fi Python, Perl sau grep.
  3. Scrieți modelul folosind caracterele speciale și caracterele literale.
  4. Utilizați funcția sau metoda corespunzătoare pentru a căuta modelul într-un șir.

Exemple:

  1. Pentru a potrivi o secvență de caractere literale, pur și simplu scrieți acele caractere în model.
  2. Pentru a potrivi un singur caracter dintr-un set de posibilități, utilizați paranteze drepte, de ex. [0123456789] se potrivește cu orice cifră.
  3. Pentru a potrivi zero sau mai multe apariții ale expresiei precedente, utilizați simbolul stea (*).
  4. Pentru a potrivi una sau mai multe apariții ale expresiei precedente, utilizați simbolul plus (+).
  5. Este important să rețineți că regex poate fi complex și dificil de citit, așa că este recomandat să utilizați instrumente precum testere regex pentru a vă depana și optimiza modelele.

O expresie regulată (uneori numită expresie rațională) este o secvență de caractere care definesc un model de căutare, în principal pentru utilizarea în potrivirea modelelor cu șiruri de caractere sau potrivirea șirurilor de caractere, adică pentru a găsi și înlocui operațiuni similare. Expresiile regulate sunt o modalitate generalizată de a potrivi modele cu secvențe de caractere. Este folosit în orice limbaj de programare precum C++, Java și Python.



Ce este o expresie regulată și ce o face atât de importantă?

Regex este folosit în Google Analytics în potrivirea URL-ului în sprijinirea căutării și înlocuiește în cele mai populare editori precum Sublime, Notepad++, Brackets, Google Docs și Microsoft Word.

matrice în programarea c
  Example :    Regular expression for an email address : ^([a-zA-Z0-9_-.]+)@([a-zA-Z0-9_-.]+).([a-zA-Z]{2,5})$>

Expresia regulată de mai sus poate fi folosită pentru a verifica dacă un anumit set de caractere este sau nu o adresă de e-mail.

Cum se scrie expresiile regulate?

Există anumite elemente folosite pentru a scrie expresii regulate, așa cum este menționat mai jos:



1. Repetoare ( *, + și { } )

Aceste simboluri acționează ca repetoare și îi spun computerului că caracterul precedent trebuie utilizat mai mult decât o singură dată.

2. Simbolul asterisc ( * )

Îi spune computerului să se potrivească cu caracterul precedent (sau setul de caractere) de 0 sau mai multe ori (până la infinit).

  Example :   The regular expression ab*c will give ac, abc, abbc, abbbc….and so on>

3. Simbolul Plus ( + )

Îi spune computerului să repete caracterul precedent (sau setul de caractere) de cel puțin o dată sau de mai multe ori (până la infinit).



  Example :   The regular expression ab+c will give abc, abbc, abbbc, … and so on.>

4. Bretele { … }

Acesta îi spune computerului să repete caracterul precedent (sau setul de caractere) de atâtea ori cât valoarea din această paranteză.

java pgm
  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. Wildcard ( . )

Simbolul punct poate lua locul oricărui alt simbol, de aceea se numește caracter joker.

  Example :    The Regular expression .* will tell the computer that any character can be used any number of times.>

6. Caracter opțional ( ? )

Acest simbol îi spune computerului că caracterul precedent poate sau nu să fie prezent în șirul de potrivire.

  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. Simbolul caret ( ^ ). ( Setarea poziției pentru meci)

Simbolul caret îi spune computerului că potrivirea trebuie să înceapă la începutul șirului sau al liniei.

  Example :   ^d{3} will match with patterns like '901' in '901-333-'.>

8. Simbolul dolarului ( $ ).

Îi spune computerului că potrivirea trebuie să aibă loc la sfârșitul șirului sau înainte de la sfârșitul liniei sau șirului.

  Example :   -d{3}$ will match with patterns like '-333' in '-901-333'.>

9. Clasele de caractere

O clasă de caractere se potrivește cu oricare dintr-un set de caractere. Este folosit pentru a potrivi cel mai elementar element al unei limbi, cum ar fi o literă, o cifră, un spațiu, un simbol etc.

procesare paralelă

s : se potrivește cu orice caractere de spațiu alb, cum ar fi spațiu și tab.
S : se potrivește cu orice caractere care nu fac spații albe.
d : se potrivește cu orice caracter cifră.
D: se potrivește cu orice caractere fără cifre.
În : se potrivește cu orice caracter de cuvânt (în principiu alfanumeric)
ÎN : se potrivește cu orice caracter non-cuvânt.
 : se potrivește cu orice limită de cuvânt (acest lucru ar include spații, liniuțe, virgule, punct și virgulă etc.
[set_of_characters]: Se potrivește cu orice caracter din set_of_characters. În mod implicit, potrivirea este sensibilă la majuscule.

  Example :   [abc] will match characters a,b and c in any string.>

10. [^set_of_characters] Negare:

Se potrivește cu orice caracter care nu se află în set_of_characters. În mod implicit, potrivirea este sensibilă la majuscule.

  Example :   [^abc] will match any character except a,b,c .>

11. [primul-ultimul] Gama de caractere:

Se potrivește cu orice caracter individual din intervalul de la primul la ultimul.

  Example :   [a-zA-z] will match any character from a to z or A to Z.>

12. Simbolul de evadare ( )

Dacă doriți să potriviți caracterele reale „+”, „.” etc., adăugați o bară oblică inversă ( ) înaintea caracterului respectiv. Acest lucru va spune computerului să trateze următorul caracter ca un caracter de căutare și să îl considere pentru un model de potrivire.

  Example :   d+[+-x*]d+ will match patterns like '2+2' and '3*9' in '(2+2) * 3*9'.>

13. Gruparea caracterelor ( )

Un set de simboluri diferite ale unei expresii regulate poate fi grupat împreună pentru a acționa ca o singură unitate și a se comporta ca un bloc, pentru aceasta, trebuie să înfășurați expresia regulată în paranteză ( ).

  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. Bară verticală ( | )

Se potrivește cu orice element separat de caracterul bară verticală (|).

  Example :   th(e|is|at) will match words - the, this and that.>

15. umăr

Referință din spate: permite ca o sub-expresie potrivită anterior (expresie capturată sau cuprinsă între paranteze circulare) să fie identificată ulterior în aceeași expresie regulată. înseamnă că grupul inclus în a n-a paranteză va fi repetat în poziția curentă.

pentru buclă java
  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. Cum ( ?# comentariu )

Comentariu în linie: comentariul se termină la prima paranteză de închidere.

  Example :   A(?#This is an inline comment)w+>

17. # [la sfârșitul rândului]

Comentariu în modul X. Comentariul începe la un # fără escape și continuă până la sfârșitul rândului.

  Example :   (?x)Aw+#Matches words starting with A>