Python regular ifadelerinde simwollar toplumy
\d we \w simwol toparlary
örän çeýel däl. Hata şuňa meňzeş ýönekeý iş,
san däl, ýöne ähli harp tapmak -
olar tarapyndan çözüp bolmaýar. Şeýlde işler
üçin kwadrat möçberleri ulanmaly, olar
'ýa-da' amalynyň ornuny tutýar.
Kwadrat möçberler bir simwolyň ornuny tutýar,
içinde sanalmalaryň haýsydyr biri. Mysal üçin,
şeýle: x[abc]x - biz diýýäris, gyralarda
x harplary durmaly, içinde bolsa - bir simwol:
ýa-da 'a',
ýa-da 'b', ýa-da 'c'.
Kwadrat möçberlerden soň gaýtalanmak operatorlaryny
ýazyp bolýar. Mysal üçin, şeýle: x[abc]+x -
biz diýýäris, x-leriň arasynda 'a',
'b' we 'c' simwollarynyň islendik
sany - islendik birleşmede bolup bilýär.
Diňe simwollary sanamak däl, eýsem iki simwol
arasynda defis ýazmak arkaly simwol toparlaryny
döredip bolýar. Mysal üçin, şeýle: [a-d] -
biz 'a' -den 'd' -e çenli ähli
simwollary alyarys.
Geliň mysallara seredeliň.
Mysal
Bu mysalda gözleg şablony şeýle görünýär:
x-leriň arasynda 'a' -dan
'z' -e çenli islendik harp:
Kodyň ýerine ýetiriliş netijesi:
'! ! ! x@x'
Mysal
Bu mysalda gözleg şablony şeýle görünýär:
x-leriň arasynda 'a' -dan
'k' -e çenli islendik harp:
txt = 'xax xbx xmx x@x'
res = re.sub('x[a-k]x', '!', txt)
print(res)
Kodyň ýerine ýetiriliş netijesi:
'! ! xmx x@x'
Mysal
Bu mysalda gözleg şablony şeýle görünýär:
x-leriň arasynda 'A' -dan
'Z' -e çenli islendik harp:
txt = 'xax xBx xcx x@x'
res = re.sub('x[A-Z]x', '!', txt)
print(res)
Kodyň ýerine ýetiriliş netijesi:
'xax ! xcx x@x'
Mysal
Bu mysalda gözleg şablony şeýle görünýär:
x-leriň arasynda 0 -dan
9 -a çenli islendik san:
txt = 'xax x1x x3x x5x x@x'
res = re.sub('x[0-9]x', '!', txt)
print(res)
Kodyň ýerine ýetiriliş netijesi:
'xax ! ! ! x@x'
Mysal
Bu mysalda gözleg şablony şeýle görünýär:
x-leriň arasynda 3 -dan
7 -a çenli islendik san:
txt = 'xax x1x x3x x5x x@x'
res = re.sub('x[3-7]x', '!', txt)
print(res)
Kodyň ýerine ýetiriliş netijesi:
'xax x1x ! ! x@x'
Mysal
Bu mysalda gözleg şablony şeýle görünýär:
x-leriň arasynda 'a' -dan
'z' -e çenli islendik harp ýa-da
1 -den 9 -a çenli islendik san:
txt = 'xax x1x x3x x5x x@x'
res = re.sub('x[a-z1-9]x', '!', txt)
print(res)
Kodyň ýerine ýetiriliş netijesi:
'! ! ! ! x@x'
Mysal
Bu mysalda gözleg şablony şeýle görünýär:
x-leriň arasynda 'a' -dan
'z' -e çenli islendik harp ýa-da
'A' -dan 'Z' -e çenli islendik harp:
txt = 'xax xBx xcx x5x x@x'
res = re.sub('x[a-zA-Z]x', '!', txt)
print(res)
Kodyň ýerine ýetiriliş netijesi:
'! ! ! x5x x@x'
Mysal
Bu mysalda gözleg şablony şeýle görünýär:
x-leriň arasynda 'a' -dan
'z' -e çenli islendik harp ýa-da
1, 2 sanlary:
txt = 'xax xbx x1x x2x x3x'
res = re.sub('x[a-z12]x', '!', txt)
print(res)
Kodyň ýerine ýetiriliş netijesi:
'! ! ! ! x3x'
Mysal
Bu mysalda gözleg şablony şeýle görünýär:
x-leriň arasynda 'a' -dan
'z' -e çenli harplar 1 we
ondan köp san:
txt = 'xx xabesx xaadx x123x xa3x'
res = re.sub('x[a-z]+x', '!', txt)
print(res)
Kodyň ýerine ýetiriliş netijesi:
'xx ! ! ! x123x xa3x'
Mysal
Harplaryň sany nol hem bolup biler ýaly edeliň:
txt = 'xx xabesx xaadx x123x xa3x'
res = re.sub('x[a-z]*x', '!', txt)
print(res)
Netijede biz alyarys:
'! ! ! ! x123x xa3x'
Mysal
Kwadrat möçberleriň içinde ekranlaşdyrylan simwollary hem görkezip bolýar. Geliň harp we sanlaryň yzygiderliligini, nol ýa-da ondan köp gezek gaýtalanýandygyny tapalyň:
txt = 'xx x@x xadx xas12x xa3x'
res = re.sub('x[a-z\d]*x', '!', txt)
print(res)
Kodyň ýerine ýetiriliş netijesi:
'! x@x ! ! !'
Mysal
Eger-de biz başga bir kwadrat möçber görkezmeli bolsak, onda olary hem hökmany ekranlaşdyrmaly:
txt = 'xx xrx xas[]x x3x'
res = re.sub('x[a-z\[\]]*x', '!', txt)
print(res)
Kodyň ýerine ýetiriliş netijesi:
'! ! ! x3x'
Amaly meseleler
Setir berlen:
txt = 'aba aea aca aza axa'
Regular ýazyň, şu şablona laýyk gelýänini tapýan:
gyralarda 'a' harplary durýar,
olar arasynda bolsa - 'b',
'e' ýa-da 'x' harp.
Setir berlen:
txt = 'a1a a3a a7a a9a aba'
Regular ýazyň, şu şablona laýyk gelýänini tapýan:
gyralarda 'a' harplary durýar,
olar arasynda bolsa - 3 -den
6 -a çenli san.
Setir berlen:
txt = 'aba aea afa aha aga'
Regular ýazyň, şu şablona laýyk gelýänini tapýan:
gyralarda 'a' harplary durýar,
olar arasynda bolsa - 'a' -dan
'g' -a çenli harp.
Setir berlen:
txt = 'aba aea afa aha aga'
Regular ýazyň, şu şablona laýyk gelýänini tapýan:
gyralarda 'a' harplary durýar,
olar arasynda bolsa - 'a' -dan
'f' -a çenli we 'j' -den
'z' -e çenli harp.
Setir berlen:
txt = 'aAa aea aEa aJa a3a'
Regular ýazyň, şu şablona laýyk gelýänini tapýan:
gyralarda 'a' harplary durýar,
olar arasynda bolsa - 'a' -dan
'f' -a çenli we 'A' -dan
'D' -a çenli harp.
Setir berlen:
txt = 'aAXa aeffa aGha aza ax23a a3sSa'
Regular ýazyň, şu şablona laýyk gelýänini tapýan:
gyralarda 'a' harplary durýar,
olar arasynda bolsa - kiçi latyn harplary,
galanlaryna el sürmedik.
Setir berlen:
txt = 'aAXa aeffa aGha aza ax23a a3sSa'
Regular ýazyň, şu şablona laýyk gelýänini tapýan:
gyralarda 'a' harplary durýar,
olar arasynda bolsa - kiçi we uly latyn harplary,
galanlaryna el sürmedik.
Setir berlen:
txt = 'aAXa aeffa aGha aza ax23a a3sSa'
Regular ýazyň, şu şablona laýyk gelýänini tapýan:
gyralarda 'a' harplary durýar,
olar arasynda bolsa - kiçi latyn harplary we sanlar,
galanlaryna el sürmedik.