Expresie regulată: ce înseamnă

click fraud protection

Ce este o expresie regulată?

Regex sau expresii obisnuite, sunt un marcaj de potrivire a modelului care programatori folosiți pentru a căuta anumite tipare în text. Expresiile regulate pot căuta aproape orice, în funcție de modul în care le structurați; sunt folosiți peste tot de programatori, deoarece sunt de neprețuit pentru a ajuta computerele să sorteze rapid datele și să filtreze prostii care altfel ar putea provoca erori.

Expresiile obișnuite tind să arate înfricoșătoare, în special pentru neprogramatori. Uită-te la acest lucru:

[a-zA-Z0-9 _. + -] + @ [a-zA-Z0-9 _-] + \. [a-zA-Z0-9 _.-] +

Realist, de fapt nu este atât de rău; că unul se potrivește cu adresele de e-mail. După cum veți vedea, expresiile pot fi împărțite în caractere individuale, toate acestea spunând programului ce trebuie să caute.

Expresiile regulate sunt aproape universale. Același general sintaxă se aplică în toate limbile, cu mici variații aici și acolo. Acest ghid conține exemple din Python și JavaScript, precum și regex vechi simplu. Dacă lucrați cu o altă limbă, nu vă faceți griji. Aproape totul se va aplica și pentru limba dvs. de alegere.

instagram viewer

Regex Noțiuni de bază

Din punct de vedere tehnic, nu există o mulțime de lucruri care să nu poată fi considerate expresii obișnuite, deoarece șirurile de text literal sunt foarte simple. Dacă ar fi să folosiți „abcde” ca expresie regulată, limbajul de programare ar căuta acel șir exact.

Primul personaj de potrivire mai dinamic la care aruncăm o privire este „.” caracter. În acest context, caracterul punct este un wildcard. Dacă căutați cu el, programul dvs. va returna orice caracter pe care îl găsește ca potrivire.

Deci, ce se întâmplă dacă doriți să căutați un punct literal? Nici asta nu este greu. Când doriți să utilizați o perioadă literală, adăugați o bară inversă în fața ei, astfel: '\.'

Caractere cu bară inversă

Cu toate acestea, bara inversă joacă mult mai multe roluri aici. Majoritatea personajelor regex majore includ o bară inversă.

Cifre de expresie regulată
Găsirea cifrelor cu Regex în Python.

Aruncați o privire la câteva exemple:

  • \ d: cifre de la 0 la 9
  • \ w: litere, cifre și subliniere pentru „caractere de cuvânt”
  • \ s: caractere în spațiu alb, inclusiv file, linii noi și spații obișnuite

Dacă folosiți litera majusculă cu oricare dintre acestea, veți obține inversul. De exemplu, „\ D” vă oferă totul, cu excepția cifrelor.

Clase

caractere de bară inversă sunt bune, dar sunt încă cam rigide. În general, veți dori să potriviți fie litere, cifre, fie câteva caractere speciale.

Clase regulate de expresie
Utilizarea claselor Regex pentru a găsi litere în Python.

Plasați caracterele cu care doriți să fie potrivite într-o pereche de paranteze pătrate „[]”, iar programul dvs. se va potrivi cu oricare dintre ele. Aceasta se numește clasă regex.

[abcd1234]

Exemplul de mai sus este încă ineficient. În schimb, puteți utiliza o liniuță pentru a specifica un interval; de exemplu, toate literele mici:

[a-z]

Puteți lista și intervale. Expresia de mai jos se potrivește cu toate literele și cifrele:

[a-zA-Z0-9]

Dacă intenționați să includeți liniuța în setul dvs. de caractere, lipiți-o la sfârșit pentru a preveni evaluarea acesteia. Funcționează și cu alte personaje speciale.

[a-zA-Z0-9 _. + -]

La fel ca în cazul caracterelor de bară inversă, puteți obține rezultatul invers și aici. Plasați un „^” la începutul cursului pentru a-i exclude din rezultatele dvs. Aceasta va exclude cifrele și mai multe caractere speciale din rezultate:

[^0-9_+.-]

Grupuri

Grupurile folosesc un set de paranteze pentru a vă despărți expresia. Acestea grupează datele, permițând programului dvs. să le vizeze și să le utilizeze. Când un program dezbracă „ http://' de la o adresă web, folosește grupuri regex pentru a realiza acest lucru. Regex-ul îi permite să vizeze anumite criterii, iar grupurile îl permit să separe secțiuni.

Grupuri de expresii regulate
Grupuri Regex Ajutor Găsiți adrese URL în JavaScript.

Grupurile vă permit, de asemenea, să alegeți între un model sau altul. Ei folosesc un singur „|” să acționeze ca „sau” în expresie. Expresia de mai jos se va potrivi cu oricare dintre acestea: .com, .org, .net, .edu sau .gov.

\. (com | org | net | edu | gov)

Cuantificatoare

Cuantificatoarele sunt exact cum sună. Acestea spun expresiei cantitatea unui personaj pe care îl căutați. Acestea sunt cuantificatoarele disponibile:

  • *: Zero sau mai mult
  • +: Una sau mai multe
  • ?: Zero sau unul
  • {3}: suma dintre paranteze

Plasați oricare dintre aceste cuantificatoare la sfârșitul caracterului sau clasei pentru care doriți să specificați cantitatea. Acest exemplu caută numere de telefon standard din șapte cifre:

\ d {3} [. * -] \ d {3} [. * -] \ d {4}

Ancore și limite

Expresiile regulate vă permit să căutați modele pe baza poziției lor într-un șir de text sau în jurul unui cuvânt.

Ancore de expresie regulate
Ancorele Regex folosesc poziționarea pentru a găsi o potrivire în JavaScript.

Acestea sunt opțiunile dvs. principale:

  • ^: Începutul unui șir
  • $: Sfârșitul unui șir
  • \ b: Limita cuvântului (începutul sau sfârșitul unui cuvânt)

Dacă doriți să găsiți numai șiruri care încep cu o literă, puteți încerca:

^ [a-zA-Z]

Spuneți că doriți să găsiți doar cuvântul „it”, nu cuvinte care conțin literele I și T; acolo ai folosi limita cuvintelor.

\ b (i | I) t \ b

Gânduri finale

Expresiile regulate vă pot economisi o grămadă de dureri de cap atunci când programați. Imaginați-vă că încercați să scrieți logică pentru a realiza oricare dintre exemplele din acest articol. Ar fi o mizerie teribilă. Odată ce te vei simți confortabil cu ei, probabil că te vei bucura cu adevărat de puterea și flexibilitatea regexului.

instagram story viewer