Regex: Caractere ce se repeta si Cuvinte din aceasi familie

Stefanescu Mihai 2 years ago Regular Expressions

In acest articol am sa presupun ca dorim sa cautam un cuvant in care poate varia o anumita litera, sa luam exemplul de mai jos:

invat
invaaaat
invaaaaaaaaaaat
invaaaaaaaaaaaaaaaaaaat
invaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat

Ce putem face pentru a selecta toate aceste versiuni ale cuvantului?
Putem face un regex care va cauta cuvantul initial si-l va gasi chiar daca o anumita litera se repeta de mai multe ori:

Destul de simplu, nu? Hai sa va invat cum sa faceti acest lucru intr-un mod si mai simplu. Trebuie doar sa adaugati un + dupa caracterul ce este posibil sa se repete de mai multe ori:

Cuvinte din aceasi familie

Acum am sa va vorbesc despre gasirea cuvintelor cu aceasi radacina.
Pentru inceput trebuie sa luam o familie de cuvinte cu aceasi radacina:

invat
invatam
invatasem

Se poate observa foarte simplu ca radacina este invat, din care vin derivatele invatam si invatasem.
In acest caz, ca si in cazul de mai sus putem face acest lucru in 2 moduri:
Putem cauta radacina urmata de orice alte 0 sau mai multe caractere:

invat(.*)

Sau putem cauta radacina urmata de una dintre terminatiile dorite:

invat(am|asem)?

Programator de ~8 ani, am lucrat la proiecte din mai multe industrstrii, de la eCommerce la telecomunicatii la automatizari. In acest timp am folosi diferite tehnologii, de la PHP, MySQL, PostgreSql, RabbitMq, Redis, Memcached si altele.


Get in touch
Pentru nelamuriri, dubii, comentarii si chestii de pe suflet ne putem auzi pe Discord, Reddit sau poti deschide o discutie noua pe forum

Club-ul este dedicat membrilor si ofera access la mai multe zone ale website-ului.
Login Register

🔖 Bookmarks
âœĻ Pentru a sustine aceasta comunitate am sa te rog sa te autentifici sau sa te inregistrezi!

🌊ïļ Discord
Back to top
Folosim cookie-uri pentru a oferi functionalitatile critice ale aplicatiei Invata-Programare. Folosim cookie-uri si pentru a analiza traficul, pentru care e nevoie de consimtamantul dvs. explicit.