1. regex (Expresii regulate)

Expresiile regulate reprezintă o unealtă puternică pentru o selecție bazată pe anumite tipare. Acestea folosesc notări speciale similare celor pe care le-am întâlnit pe parcursul acestui curs, ca de exemplu simbolul * care reprezintă conceptul de “orice”.

Vom vorbi despre câteva dintre cele mai folosite expresii regulate, acestea fiind aproape universal întâlnite în orice limbaj de programare.

Vom folosi această frază ca șir de caractere de test:

sucul se strica simplu
pe langa stanci

1. Începutul unui rând cu simbolul ^

^pe
va găsi și va returna rândul "pe langa stanci"

2. Sfârșitul unui rând cu simbolul $

stanci$
va găsi și va returna rândul "pe langa stanci"

3. Găsirea unui anumit caracter cu simbolul .

p.
va găsi și va returna pe

4. Notarea cu paranteze drepte []

Poate fi un pic complicată, deoarece parantezele drepte ne permit să specificăm caracterele în interiorul lor care trebuiesc găsite.

d[aou]r
va găsi și va returna: dar, dor, dur

Simbolul tip ancoră ^ atunci când este folosit în interiorul parantezelor drepte semnifică orice cu excepția caracterelor din interiorul parantezelor drepte.

d[^u]g
va găsi și va returna: dar și dor dar nu și dur

Parantezele drepte pot folosi deasemenea intervale pentru a crește numărul de caractere pe care doriți sa îl folosiți.

d[a-c]r
va găsi și va returna tipare ca dar, dbr, and dcr

Aveți mare grijă deoarece parantezele drepte sunt sensibile la majuscule:

d[A-C]r
va găsi și va returna dAr, dBr și dCr dar nu și dar, dbr și dcr

Totuși, aveți în vedere că acestea nu sunt decât câteva expresii regulate uzuale. Aici de abia dacă am zgâriat suprafața. Acest domeniu este extrem de vast, iar pentru o mai bună înțelegere va recomand foarte multă documentare.


Exerciții

Încercați să combinați expresiile regulate cu comanda grep și să căutați prin niște fișiere.

grep [expresia regulată aici] [fișier]

Lasă un răspuns

Adresa ta de email nu va fi publicată.

Acest site folosește Akismet pentru a reduce spamul. Află cum sunt procesate datele comentariilor tale.