Regex: Grupuri si Cuantificatori

postat acum 2 ani de Stefanescu Mihai in categorie Regular Expressions

In acest articol am sa vorbesc despre grupuri si cum putem selecta sau omite un asemenea grup.
Hai sa facem un regex ce va selecta o adresa de email. In primul rand dorim sa selectam tot ce este inainte de @, deci o sa cautam toate caracterele alfa-numerice si underscore:

[A-Za-z0-9_]

Apoi avem nevoie de un @ pe care-l selectam folosind

+@

Apoi pentru provider avem inca o data un set de carcatere alfanumeric + cratima (aici puteti orice alte caractere doriti sa fie acceptate):

[A-Za-z0-9-]

Iar acum pentru domeniu am putea pune (.*) sau alt grup alfa numeric [A-Za-z0-9], dar aici avem urmatoarea problema, daca un utilizator pune un domeniu precum .sd87sdfasah acesta va fi acceptat, deci trebuie sa facem un grup in felul urmator (si aici puteti pune si alte domenii, dar trebuie sa fie separate de operatorul | ):

(ro|org|com)

Cuantificatori

Am facut o lista de cuvinte cu care sa lucram mai departe:

invata programare
salut
expresie

Acum probabil cu totii stim cum sa selectam un cuvant, folosim [a-z]+, dar ce facem cand dorim sa selectam doar cuvintele care sunt formate din 5 litere?
Pai putem face urmatorul lucru:

Se poate observa ca au fost selectate primele 5 litere din fiecare cuvant. Acoladele, ca in exemplul de mai sus, de permit sa specificam si un interval in care sa se afle textul dorit, de exemplu:

Folosind aceleasi acolade putem cauta cuvinte cu un numar de litere mai mare decat un anumit numar stabilit de noi:

Sunt un tanar programator din Bucuresti ce lucreaza in PHP/Mysql (MySqli/PDO), Laravel, CodeIgniter, MySQL, PostgreSQL, Wordpress, HTML5/CSS3, Sass, Photoshop si multe altele.
Google+ Community Facebook Group
Acest articol a fost mutat de pe vechea platforma.
Pentru orice eroare aparuta la mutare va rog sa ma contactati!