U nastavku su rešeni zadaci koji su prethodno postavljeni, uz detaljna objašnjenja kako i zašto regularni izraz funkcioniše.


Zadatak 1: Pronalaženje svih brojeva u tekstu

Tekst:

Danas je 29.01.2025. i temperatura je 15 stepeni. Moja adresa je Ulica 7, stan 12.

Regularni izraz:    \d+

🔍 Objašnjenje:

  • \d označava bilo koju cifru (0-9).
  • + označava da se traži jedna ili više cifara u nizu.
  • Ovaj izraz prepoznaje sve grupe brojeva u tekstu (29, 01, 2025, 15, 7, 12).

Ovim izrazom pronalazimo sve brojčane podatke u tekstu, bez obzira na to da li su deo datuma, adrese ili temperature.


Zadatak 2: Pronalaženje svih reči koje počinju velikim slovom

Tekst:

Petar i Milica su otišli u Beograd. Njihov pas Roki voli Dunav.

Regularni izraz:     \b[A-Z][a-z]+\b

🔍 Objašnjenje:

  • \b označava granicu reči (početak ili kraj).
  • [A-Z] osigurava da se prva slova reči kreću u opsegu od A do Z, što znači da je prvo slovo veliko.
  • [a-z]+ označava da nakon prvog velikog slova mora uslediti bar jedno malo slovo.

Pronađene reči: Petar, Milica, Beograd, Njihov, Roki, Dunav

Ovim izrazom ignorišemo reči koje počinju malim slovom (npr. i, su, u) i dobijamo samo imena i vlastite imenice.


Zadatak 3: Pronalaženje e-mail adresa u tekstu

Tekst:

Kontaktirajte nas na podrska@firma.com ili na pomoc@mojsajt.net.  
Nevažeći mejlovi su: info@firma, admin@@sajt.com

Regularni izraz:   \b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b

🔍 Objašnjenje:

  • [A-Za-z0-9._%+-]+ prepoznaje korisničko ime u e-mail adresi (može sadržati slova, brojeve i specijalne znakove ._%+-).
  • @ označava obavezni znak "@" koji razdvaja korisničko ime od domena.
  • [A-Za-z0-9.-]+ prepoznaje naziv domena (npr. firma, mojsajt).
  • \. traži tačku koja odvaja domen od ekstenzije.
  • [A-Za-z]{2,} označava ekstenziju domena (npr. com, net, org, rs).

Pronađene e-mail adrese: podrska@firma.com, pomoc@mojsajt.net
Nevalidni mejlovi: info@firma (nema ekstenziju), admin@@sajt.com (dva @).

-------------------------------

Kraća varijanta (i ne tako dobra)

Regularni izraz:   [^@\s]+@[^@\s]+\.[^@\s]+

Objašnjenje:

  • [^@\s]+ prepoznaje korisničko ime u e-mail adresi (bilo šta što nije @ ili razmak, i može biti koliko god takvih znakova)
  • @ označava obavezni znak "@" koji razdvaja korisničko ime od domena.
  • [^@\s]+ prepoznaje naziv domena (bilo šta što nije @ ili razmak, i može biti koliko god takvih znakova).
  • \. traži tačku koja odvaja domen od ekstenzije.
  • [^@\s]+ označava ekstenziju domena (bilo šta što nije @ ili razmak, i može biti koliko god takvih znakova).

 Pronađene e-mail adrese: podrska@firma.com, pomoc@mojsajt.net
 Nevalidni mejlovi: info@firma (nema ekstenziju), admin@@sajt.com (dva @).

- Ovo nije najbolje rešenje, jer će pronaći i da je 1@2.3 validan email


Zadatak 4: Pronalaženje brojeva telefona u različitim formatima

Tekst:

Moji brojevi su: +381-63-123-4567, 011/234-5678 i (021) 345-678.

Regularni izraz:   \+?\d{1,3}[-\/\s]?\(?\d{2,3}\)?[-\/\s]?\d{3}[-\/\s]?\d{3,4}

🔍 Objašnjenje:

  • \+? označava da znak + može biti prisutan, ali nije obavezan.
  • \d{1,3} prepoznaje međunarodni kod (npr. 381).
  • [-\/\s]? dozvoljava razne razdelnike (-, /, razmak).
  • \(?\d{2,3}\)? prepoznaje kod grada (može biti u zagradama, npr. (021)).
  • \d{3}[-\/\s]?\d{3,4} prepoznaje ostatak broja (npr. 234-5678).

Pronađeni brojevi: +381-63-123-4567, 011/234-5678, (021) 345-678


Zadatak 5: Pronalaženje svih reči kraćih od 5 slova

Tekst:

Ovaj pas voli da trči i skače po travi.

Regularni izraz:   \b\w{1,4}\b

🔍 Objašnjenje:

  • \b označava granicu reči.
  • \w{1,4} prepoznaje reči koje imaju od 1 do 4 slova.
  • \b ponovo označava kraj reči.

Pronađene reči: Ovaj, pas, voli, da, i, po


Zaključak

Regularni izrazi su moćan alat za pretragu i analizu teksta. Ključ uspeha u radu sa regex-om je razumevanje osnovnih elemenata:

  • \d za cifre, \w za slova i brojeve, . za bilo koji karakter.
  • +, *, {min,max} za ponavljanja.
  • ^ i $ za početak i kraj reda.
  • \b za granicu reči.
  • Grupa [...] za definisanje skupa dozvoljenih znakova.

Ovi zadaci su samo početak – preporučuje se dalje eksperimentisanje i rad sa regex alatima kako bi se stekla intuitivna upotreba ovih izraza u realnim situacijama. 🚀


Last modified: Thursday, 6 February 2025, 10:54 AM