Uvod u regularne izraze u Pythonu
Regularni izrazi su komande za komplikovano traženje i zamenu (ili samo traženje). Oni omogućavaju da se urade veoma zanimljive stvari, ali su, nažalost, prilično teški za savladavanje.
Da bismo započeli rad sa regularnim izrazima
u Pythonu, potrebno je da importujemo specijalni
modul re:
import re
Modul re uključuje metode,
namenjene za rad sa regularnim
izrazima. Regularni izraz
predstavlja skup komandi i sastoji se
od dve vrste simbola: od onih koji
označavaju sami sebe i od simbola-komandi,
koji se zovu specijalni simboli.
Upoznavanje sa regularnim izrazima je bolje
započeti na primeru metode sub, koja
se koristi za zamene u stringu. Prvim
parametrom metod prihvata šta zameniti,
drugim - čime zameniti. U trećem parametru
navodimo string u kojem treba izvršiti
zamenu. U četvrtom opcionom parametru
zadajemo broj zamena. Najjednostavnija
zamena uz pomoć ovog metoda će
izgledati ovako:
res = re.sub('a', '!', 'bab')
print(res) # ispisuje 'b!b'
Kao što ste primetili, u regularnom izrazu
slova označavaju sama sebe. Isto se
odnosi i na cifre. Hajde da zamenimo cifru
2 sa !:
res = re.sub('2', '!', '12abc3')
print(res) # ispisuje '1!abc3'
A tačka je specijalni simbol
i označava bilo koji simbol. U sledećem
primeru hajde da nađemo podstring po takvom
šablonu: slovo 'x', zatim bilo koji
simbol, zatim opet slovo 'x':
res = re.sub('x.x', '!', 'xax eee')
print(res) # ispisuje '! eee'
Dat je string:
txt = 'ahb acb aeb aeeb adcb axeb'
Napišite regularni izraz koji će naći stringove
'ahb', 'acb', 'aeb'
po šablonu: slovo 'a', bilo koji
simbol, slovo 'b'.
Dat je string:
txt = 'aba aca aea abba adca abea'
Napišite regularni izraz koji će naći stringove
'abba', 'adca', 'abea'
po šablonu: slovo 'a', 2
bilo koja simbola, slovo 'a'.
Dat je string:
txt = 'aba aca aea abba adca abea'
Napišite regularni izraz koji će naći stringove
'abba' i 'abea', a da ne uhvati
'adca'.