Kistari ndani ya seti katika usimbaji fupi wa Python
Kistari - pia ni ishara maalum ndani ya [ ]
(lakini nje - sio). Ikiwa unahitaji kistari yenyewe
kama ishara - basi weka mahali
ambapo haitaeleweka kama kitenganishi
cha kikundi.
Kwa nini hii ni muhimu: unaweza kutengeneza kikundi
cha herufi, bila kugundua mwenyewe. Kwa mfano,
hivi - '[:-@]' - unafikiri kuwa
unachagua koloni, kistari na alama ya mkoba (at), lakini
kiuhalisi kinatokea kikundi cha herufi kati ya
: na @. Kikundi hiki kinabeba
herufi zifuatazo: ? < = > :
Zimetoka wapi? Kutoka kwenye jedwali la ASCII - koloni ina nambari ndogo kuliko ile ya mkoba (at) - na hutokea kikundi. Yaani makundi yote hutokea kulingana na jedwali la ASCII (kwa hiari hii inaweza kutumika).
Jinsi ya kukabiliana na hili: weka ishara
ya kistari mahali, ambapo hakika haitaeleweka
kama ishara ya kikundi, kwa mfano, mwanzoni au
mwishoni (yaani baada ya [ au kabla ya
]).
Pia unaweza kuepusha kistari - basi
kitaashiria yenyewe bila kujali
nafasi. Kwa mfano, badala ya [:-@]
kuandika [:\-@] - na hakika hakuna
kikundi tena, lakini kutakuwa na herufi tatu - koloni,
kistari na alama ya mkoba (at) @.
Mfano
Katika mfano ufuatao muundo wa utafutaji ni huu:
tarakimu 1, kisha herufi kutoka 'a'
hadi 'z', kisha tarakimu 2:
txt = '1a2 1-2 1c2 1z2'
res = re.sub('1[a-z]2', '!', txt)
print(res)
Matokeo ya utekelezaji wa kificho:
'! 1-2 ! !'
Mfano
Wacha sasi tuepushe kistari. Kwa
matokeo muundo wa utafutaji ni huu: tarakimu
1, kisha herufi 'a', au
kistari, au herufi 'z', kisha tarakimu
2:
txt = '1a2 1-2 1c2 1z2'
res = re.sub('1[a\-z]2', '!', txt)
print(res)
Matokeo ya utekelezaji wa kificho:
'! ! 1c2 !'
Mfano
Inawezekana kubadilisha nafasi ya kistari, bila kuepusha hiyo:
txt = '1a2 1-2 1c2 1z2'
res = re.sub('1[az-]2', '!', txt)
print(res)
Matokeo ya utekelezaji wa kificho:
'! ! 1c2 !'
Mfano
Katika mfano ufuatao muundo wa utafutaji ni huu:
herufi ya kwanza - ni herufi ndogo au
kistari '-', kisha herufi mbili
'x':
txt = 'axx Axx -xx @xx'
res = re.sub('[a-z-]xx', '!', txt)
print(res)
Matokeo ya utekelezaji wa kificho:
'! Axx ! @xx'
Mfano
Katika mfano ufuatao muundo wa utafutaji ni huu:
herufi ya kwanza - ni herufi ndogo, kubwa
au kistari '-', kisha herufi mbili
'x':
txt = 'axx Axx -xx @xx'
res = re.sub('[a-zA-Z-]xx', '!', txt)
print(res)
Matokeo ya utekelezaji wa kificho:
'! ! ! @xx'
Mfano
Inawezekana kuweka kistari kati ya makundi mawili - hapo hakika hakitafanya kikundi kingine tena:
txt = 'axx 9xx -xx @xx'
res = re.sub('[a-z-0-9]xx', '!', txt)
print(res)
Matokeo ya utekelezaji wa kificho:
'! ! ! @xx'
Kazi za Vitendo
Kuna kamba ifuatayo:
txt = 'xaz xBz xcz x-z x@z'
Tafuta kamba zote kulingana na muundo ufuatao:
herufi 'x', herufi kubwa au ndogo
au kistari, herufi 'z'.
Kuna kamba ifuatayo:
txt = 'xaz x$z x-z xcz x+z x%z x*z'
Tafuta kamba zote kulingana na muundo ufuatao:
herufi 'x', kisha au dola, au
kistari au alama ya jumlisha, kisha herufi 'z'.