Ce este un Regex (expresie regulată)?

Scurt pentru expresia regulată, un regex este un șir de text care vă permite să creați modele care ajută la potrivirea, localizarea și gestionarea textului. Perl este un exemplu excelent de limbaj de programare care utilizează expresii regulate. Cu toate acestea, singurul dintre numeroasele locuri în care puteți găsi expresii regulate. Expresii regulate pot fi de asemenea folosite din linia de comandă și în editorii de text pentru a găsi textul într-un fișier.

Când încerci mai întâi să înțelegi expresiile regulate, pare ca și cum ar fi o limbă diferită. Cu toate acestea, stăpânirea expresiilor regulate vă poate salva mii de ore dacă lucrați cu text sau trebuie să analizați cantități mari de date. Mai jos este un exemplu de expresie regulată cu fiecare dintre componentele sale etichetate. Această expresie regulată este prezentată și în exemplele de programare Perl afișate mai târziu în această pagină.

Elementele de bază ale expresiilor regulate (foaie de înșelătorie)

Privind exemplul de mai sus poate fi copleșitor. Cu toate acestea, odată ce înțelegeți sintaxa de bază a modului în care funcționează comenzile expresiei regulate, puteți citi exemplul de mai sus ca și cum ați citi această propoziție. Din păcate, nu toate programele, comenzile și limbile de programare utilizează aceleași expresii regulate, dar toate au asemănări.

CaracterCe face?ExempluChibrituri
^Se potrivește începutul liniei^ abcabc, abcdef .., abc123
$Se potrivește cu sfârșitul linieiabc $meu: abc, 123abc, abc
.Potrivi orice personajACabc, asg, a2c
|Operatorul ORabc | xyzabc sau xyz
(...)Capturați ceva potrivit(A) b (c)Captează "a" și "c"
(:? ...)Grupul fără capturare(A) b (: c)Captează "a" dar numai grupuri "c"
[...]Se potrivește cu orice conținut conținut în paranteze[Abc]a, b sau c
[^ ...]Se potrivește cu tot ce nu este conținut în paranteze[^ Abc]xyz, 123, 1de
[Az]Se potrivește cu orice caracter între "a" și "z"[Bz]bc, minte, xyz
{X}Suma exactă "x" de ori pentru a se potrivi(Abc) {2}abcabc
{X, }Se potrivește "x" de ori sau mai mult(Abc) {2}abcabc, abcabcabc
{X y}Se potrivește între orele "x" și "y".(A) {2, 4}aa, aaa, aaaaa
*Un meci greu care se potrivește cu totul în locul poziției *ab * cabc, abbcc, abcdc
+Se potrivește caracterul înainte de + de una sau de mai multe oria + cac, aac, aaac,
?Împacă personajul înainte de? zero sau de o dată. De asemenea, folosit ca un meci non-lacomab? cac, abc
\Scapa de caracter după întoarcere înapoi sau crea o secvență de evadare.o \ scAC

Caracterele de evacuare (secvența de evacuare)

Notă: caracterele de evacuare sunt sensibile la minuscule.

CaracterCe face?
\Orice personaj care nu este menționat mai jos, precedat de un \ va fi scăpat. De exemplu, \. se potrivește cu o perioadă și nu îndeplinește funcția menționată mai sus. Caracterele care trebuie scapate sunt () [] {} ^ $. | * +? \
\ 0Null caracter
\APotrivi un clopot sau alarma.
\ bLimita de limbaj în majoritatea sau înapoi
\ BLimita fără limbaj
\ dPotrivi orice cifră zecimală (0-9)
\ DSe potrivesc cu orice altă cifră
\ eSe potrivește o scăpare
\ fPotriviți un flux de formular
\ nSe potrivește cu o linie nouă
\ Q ... \ EIgnoră orice semnificație specială în ceea ce se potrivește.
\ rPotriviți un retur de cărucior
\ sSe potrivește un caracter spațiu (spațiu, \ t, \ r, \ n)
\ SSe potrivește cu orice caracter spațiu alb
\ tPotriviți o filă
\ vPotriviți o filă verticală
\ wSe potrivește cu orice caracter cu un singur cuvânt [a-zA-Z_0-9]
\ WSe potrivește cu un caracter non-cuvânt

Expresii regulate

În afara expresiei regulate (la sfârșit), pot fi folosite steaguri pentru a ajuta la potrivirea modelului.

CaracterCe face?
euIgnorați cazul (literele mari și mici)
mMatch multi-line
sSe potrivesc cu liniile noi
XPermiteți spații și comentarii
JNumele grupelor duplicate este permis
UMeciul Ungreedy

Perl limbaj de programare regulat exemple de expresie

Mai jos sunt câteva exemple de expresii regulate și de potrivire a modelului în Perl. Multe dintre aceste exemple sunt similare sau similare cu alte limbi de programare și programe care suportă expresii regulate.

 $ date = ~ s / date proaste / date bune / i; 

Exemplul de mai sus înlocuiește orice "date nepotrivite" cu "date bune" utilizând o potrivire insensibilă la caz. Deci, dacă variabila de date $ a fost "Aici sunt date proaste", ar deveni "Aici sunt date bune".

 $ date = ~ s / a / A /; 

Acest exemplu înlocuiește orice litere mici cu un majuscule A. Deci, dacă datele $ ar fi "exemplu", ar deveni "exAmple".

 $ date = ~ s / [az] / * /; 

Exemplul de mai sus înlocuiește orice literă mică, un z, cu un asterisc. Deci, dacă datele $ ar fi "Exemplu", ar deveni "E ******".

 $ date = ~ s / e $ / es /; 

Acest exemplu utilizează caracterul $, care spune expresiei regulate să se potrivească cu textul înainte de sfârșitul șirului. Deci, dacă datele $ ar fi "exemplu", ar deveni "exemple".

 $ date = ~ s /\./!/; 

În exemplul de mai sus, înlocuim o perioadă cu un semn de exclamare. Deoarece perioada este un meta-caracter dacă ați introdus doar o perioadă fără \ (escape), este tratată ca orice caracter. În acest exemplu, dacă datele $ au fost "exemplu". ar deveni "exemplu!", cu toate acestea, dacă nu ați avea evadarea, ea va înlocui fiecare personaj și va deveni "!!!!!!!!"

 $ date = ~ s / ^ e / E /; 

În cele din urmă, în acest exemplu de mai sus, cartea (^) spune expresia regulată pentru a se potrivi cu ceva de la începutul liniei. În acest exemplu, acest lucru ar corespunde oricărei litere mici de la începutul liniei și va fi înlocuit cu un capital E. Prin urmare, dacă datele $ ar fi "exemplu", ar deveni "Exemplu".

Sfat: Dacă doriți să explorați expresii regulate chiar mai mult în comenzi precum grep sau expresii regulate în limbajul de programare, verificați cartea O'Reilly "Mastering expressions regular".

Acronime pentru computer, Secvență de evacuare, Expresie, Glob, Meta-caracter, Termeni de programare, Tilde, Wildcard