Grupet e karaktereve në shprehjet e rregullta të Python
Grupet e karaktereve \d dhe \w nuk
janë shumë fleksibël. Madje një detyrë kaq e thjeshtë,
si gjetja e të gjitha shkronjave, por jo shifrave -
nuk mund të zgjidhet prej tyre. Për detyra të tilla
duhet të përdoren kllapat katrore,
që përfaqësojnë operacionin 'ose'.
Kllapat katrore zëvendësojnë një
karakter, cilindo nga ata të listuar brenda. Për
shembull, kështu: x[abc]x - ne
po themi se në anët duhet të jenë shkronjat
x, dhe brenda - një karakter: ose 'a',
ose 'b', ose 'c'.
Pas kllapave katrore mund të shkruhen
operatorë përsëritjeje. Për shembull, kështu:
x[abc]+x - ne po themi se brenda
x mund të ketë çdo numër karakteresh
'a', 'b' dhe 'c' - në
çdo kombinim.
Jo vetëm që mund të listohen karaktere, por
mund të krijohen grupe karakteresh, duke shkruar midis
dy karaktereve një vizë. Për shembull, kështu:
[a-d] - ne marrim të gjithë karakteret nga
'a' deri në 'd'.
Le të shohim shembuj.
Shembull
Në këtë shembull modeli i kërkimit duket
kështu: midis x çdo shkronjë nga
'a' deri në 'z':
Rezultati i ekzekutimit të kodit:
'! ! ! x@x'
Shembull
Në këtë shembull modeli i kërkimit duket
kështu: midis x çdo shkronjë nga
'a' deri në 'k':
txt = 'xax xbx xmx x@x'
res = re.sub('x[a-k]x', '!', txt)
print(res)
Rezultati i ekzekutimit të kodit:
'! ! xmx x@x'
Shembull
Në këtë shembull modeli i kërkimit duket
kështu: midis x çdo shkronjë nga
'A' deri në 'Z':
txt = 'xax xBx xcx x@x'
res = re.sub('x[A-Z]x', '!', txt)
print(res)
Rezultati i ekzekutimit të kodit:
'xax ! xcx x@x'
Shembull
Në këtë shembull modeli i kërkimit duket
kështu: midis x çdo shifër nga 0
deri në 9:
txt = 'xax x1x x3x x5x x@x'
res = re.sub('x[0-9]x', '!', txt)
print(res)
Rezultati i ekzekutimit të kodit:
'xax ! ! ! x@x'
Shembull
Në këtë shembull modeli i kërkimit duket
kështu: midis x çdo shifër nga 3
deri në 7:
txt = 'xax x1x x3x x5x x@x'
res = re.sub('x[3-7]x', '!', txt)
print(res)
Rezultati i ekzekutimit të kodit:
'xax x1x ! ! x@x'
Shembull
Në këtë shembull modeli i kërkimit duket
kështu: midis x çdo shkronjë nga
'a' deri në 'z' ose shifër nga
1 deri në 9:
txt = 'xax x1x x3x x5x x@x'
res = re.sub('x[a-z1-9]x', '!', txt)
print(res)
Rezultati i ekzekutimit të kodit:
'! ! ! ! x@x'
Shembull
Në këtë shembull modeli i kërkimit duket
kështu: midis x çdo shkronjë nga
'a' deri në 'z' ose shkronjë nga
'A' deri në 'Z':
txt = 'xax xBx xcx x5x x@x'
res = re.sub('x[a-zA-Z]x', '!', txt)
print(res)
Rezultati i ekzekutimit të kodit:
'! ! ! x5x x@x'
Shembull
Në këtë shembull modeli i kërkimit duket
kështu: midis x çdo shkronjë nga
'a' deri në 'z' ose shifrat 1,
2:
txt = 'xax xbx x1x x2x x3x'
res = re.sub('x[a-z12]x', '!', txt)
print(res)
Rezultati i ekzekutimit të kodit:
'! ! ! ! x3x'
Shembull
Në këtë shembull modeli i kërkimit duket
kështu: midis x shkronjat nga 'a'
deri në 'z' në sasi nga 1 e
lart:
txt = 'xx xabesx xaadx x123x xa3x'
res = re.sub('x[a-z]+x', '!', txt)
print(res)
Rezultati i ekzekutimit të kodit:
'xx ! ! ! x123x xa3x'
Shembull
Le ta bëjmë që numri i shkronjave të mund të jetë edhe zero:
txt = 'xx xabesx xaadx x123x xa3x'
res = re.sub('x[a-z]*x', '!', txt)
print(res)
Si rezultat do të marrim:
'! ! ! ! x123x xa3x'
Shembull
Brenda kllapave katrore mund të përcaktohen edhe karaktere të ekranizuar. Le të gjejmë sekuencën e shkronjave dhe shifrave, që përsëritet zero ose më shumë herë:
txt = 'xx x@x xadx xas12x xa3x'
res = re.sub('x[a-z\d]*x', '!', txt)
print(res)
Rezultati i ekzekutimit të kodit:
'! x@x ! ! !'
Shembull
Nëse duhet të përcaktojmë edhe kllapa katrore tjera, atëherë edhe ato domosdoshmërisht i ekranizojmë:
txt = 'xx xrx xas[]x x3x'
res = re.sub('x[a-z\[\]]*x', '!', txt)
print(res)
Rezultati i ekzekutimit të kodit:
'! ! ! x3x'
Detyra praktike
Është dhënë një varg:
txt = 'aba aea aca aza axa'
Shkruani një shprehje të rregullt, që do të gjejë sipas
modelit të mëposhtëm: në anët janë shkronjat
'a', dhe midis tyre - shkronja 'b',
'e' ose 'x'.
Është dhënë një varg:
txt = 'a1a a3a a7a a9a aba'
Shkruani një shprehje të rregullt, që do të gjejë sipas
modelit të mëposhtëm: në anët janë shkronjat
'a', dhe midis tyre - shifër nga
3 deri në 6.
Është dhënë një varg:
txt = 'aba aea afa aha aga'
Shkruani një shprehje të rregullt, që do të gjejë sipas
modelit të mëposhtëm: në anët janë shkronjat
'a', dhe midis tyre - shkronjë nga
'a' deri në 'g'.
Është dhënë një varg:
txt = 'aba aea afa aha aga'
Shkruani një shprehje të rregullt, që do të gjejë sipas
modelit të mëposhtëm: në anët janë shkronjat
'a', dhe midis tyre - shkronjë nga
'a' deri në 'f' dhe nga 'j'
deri në 'z'.
Është dhënë një varg:
txt = 'aAa aea aEa aJa a3a'
Shkruani një shprehje të rregullt, që do të gjejë sipas
modelit të mëposhtëm: në anët janë shkronjat
'a', dhe midis tyre - shkronjë nga
'a' deri në 'f' dhe nga 'A'
deri në 'D'.
Është dhënë një varg:
txt = 'aAXa aeffa aGha aza ax23a a3sSa'
Shkruani një shprehje të rregullt, që do të gjejë sipas
modelit të mëposhtëm: në anët janë shkronjat
'a', dhe midis tyre - shkronja të vogla
latinje, pa prekur të tjerat.
Është dhënë një varg:
txt = 'aAXa aeffa aGha aza ax23a a3sSa'
Shkruani një shprehje të rregullt, që do të gjejë sipas
modelit të mëposhtëm: në anët janë shkronjat
'a', dhe midis tyre - shkronja të vogla dhe
të mëdha latine, pa prekur të
tjerat.
Është dhënë një varg:
txt = 'aAXa aeffa aGha aza ax23a a3sSa'
Shkruani një shprehje të rregullt, që do të gjejë sipas
modelit të mëposhtëm: në anët janë shkronjat
'a', dhe midis tyre - shkronja të vogla
latinje dhe shifra, pa prekur
të tjerat.