Grupet e karaktereve në shprehjet e rregullta të Python
Ekzistojnë komanda speciale që
lejojnë zgjedhjen e grupeve të tëra
karakteresh menjëherë. Komanda \d nënkupton një shifër
nga 0 në 9. Komanda \w
nënkupton një shifër, shkronjë latine ose shenjën
e nënvizimit. Komanda \s nënkupton
hapësirë ose karakter hapësiror: hapësirë,
ndërrim rreshti, tabulim. Vlera e komandës
mund të përmbyset duke shkruar shkronjë të madhe:
për shembull, nëse \d - shifër, atëherë
\D - jo shifër.
Shembull
Le të gjejmë të gjitha shifrat:
txt = '1 12 123'
res = re.sub('\d', '!', txt)
print(res)
Rezultati i ekzekutimit të kodit:
'! !! !!!'
Shembull
Operatorët e përsëritjes i konsiderojnë komandat-grupe
si një të tërë, domethënë kllapat grupuese
nuk janë të nevojshme. Në shembullin vijues shablloni i kërkimit
duket kështu: shifër nga 0 në
9 një ose më shumë herë:
txt = '1 12 123 abc @@@'
res = re.sub('\d+', '!', txt)
print(res)
Rezultati i ekzekutimit të kodit:
'! ! ! abc @@@'
Shembull
Në shembullin vijues shablloni i kërkimit duket
kështu: çdo gjë një ose më shumë herë,
por jo shifër nga 0 në 9:
txt = '123abc3@@'
res = re.sub('\D+', '!', txt)
print(res)
Rezultati i ekzekutimit të kodit:
'123!3!'
Shembull
Në këtë shembull shablloni i kërkimit duket kështu: karakter hapësiror një herë:
txt = '1 12 123 abc @@@'
res = re.sub('\s', '!', txt)
print(res)
Rezultati i ekzekutimit të kodit:
'1!12!123!abc!@@@'
Shembull
Në këtë shembull shablloni i kërkimit duket
kështu: JO karakter hapësiror një ose më shumë
herë. Të gjitha nënvargjet, të ndara nga
hapësirat, do të zëvendësohen me '!':
txt = '1 12 123 abc @@@'
res = re.sub('\S+', '!', txt)
print(res)
Rezultati i ekzekutimit të kodit:
'! ! ! ! !'
Shembull
Në këtë shembull shablloni i kërkimit duket
kështu: shifër ose shkronjë një ose më shumë
herë. Të gjitha nënvargjet, të përbëra nga shifra
dhe shkronja, do të zëvendësohen me '!':
txt = '1 12 123a Abc @@@'
res = re.sub('\w+', '!', txt)
print(res)
Rezultati i ekzekutimit të kodit:
'! ! ! ! @@@'
Shembull
Në këtë shembull shablloni i kërkimit duket
kështu: JO shifër dhe JO shkronjë një ose më shumë
herë. Në rastin tonë në këtë përkufizim
bie '@@@' dhe të gjitha hapësirat
(ato gjithashtu nuk janë as shifra as shkronja).
Kushtojini vëmendje faktit që në fund një
'!' - në të është shndërruar vargu
' @@@' - me hapësirë përpara:
txt = '1 12 123 Abc @@@'
res = re.sub('\W+', '!', txt)
print(res)
Rezultati i ekzekutimit të kodit:
'1!12!123!Abc!'
Detyra praktike
Është dhënë vargu:
txt = 'a1a a2a a3a a4a a5a aba aca'
Shkruani një shprehje të rregullt që do të gjejë vargjet,
në të cilat në anët janë shkronjat 'a',
dhe midis tyre një shifër.
Është dhënë vargu:
txt = 'a1a a22a a333a a4444a a55555a aba aca'
Shkruani një shprehje të rregullt që do të gjejë vargjet,
në të cilat në anët janë shkronjat 'a',
dhe midis tyre çdo numër shifrash.
Është dhënë vargu:
txt = 'aa a1a a22a a333a a4444a a55555a aba aca'
Shkruani një shprehje të rregullt që do të gjejë vargjet,
në të cilat në anët janë shkronjat 'a',
dhe midis tyre çdo numër shifrash (duke përfshirë
dhe zero shifra, domethënë vargu
'aa').
Është dhënë vargu:
txt = 'avb a1b a2b a3b a4b a5b abb acb'
Shkruani një shprehje të rregullt që do të gjejë vargjet
të formës vijuese: në anët janë shkronjat
'a' dhe 'b', dhe midis tyre -
jo numër dhe jo hapësirë.
Është dhënë vargu:
txt = 'ave a#b a2b a$b a4b a5b a-b acb'
Shkruani një shprehje të rregullt që do të gjejë vargjet
të formës vijuese: në anët janë shkronjat
'a' dhe 'b', dhe midis tyre -
jo shkronjë, jo shifër dhe jo hapësirë.
Është dhënë vargu:
txt = 'ave a#a a2a a$a a4a a5a a-a aca'
Shkruani një shprehje të rregullt që do të zëvendësojë të gjitha
hapësirat me '!'.