Seti za Herufi katika Usemi wa Kawaida wa Python
Vikundi vya herufi \d na \w havina
uvumilivu mwingi. Hata shughuli rahisi kama
kupata herufi zote, lakini si nambari -
haiwezi kutatuliwa nazo. Kwa shughuli kama hizi
tunapaswa kutumia mabano ya mraba,
yanaowakilisha operesheni ya 'au'.
Mabano ya mraba hubadilisha nafasi ya herufi moja
yoyote kati ya zile zilizoorodheshwa ndani. Kwa
mfano, hivi: x[abc]x - tunasema
kwamba kwenye kingo ziwe kuna herufi
x, na ndani - herufi moja: ama 'a',
ama 'b', ama 'c'.
Baada ya mabano ya mraba unaweza kuandika
viendeshaji marudio. Kwa mfano, hivi:
x[abc]+x - tunasema kwamba ndani
ya x kunaweza kuwa na idadi yoyote ya herufi
'a', 'b' na 'c' - katika
mchanganyiko wowote.
Si tu unaweza kuorodhesha herufi, lakini
unaweza kujenga vikundi vya herufi, kwa kuandika kati
ya herufi mbili kistari. Kwa mfano, hivi:
[a-d] - tunapata herufi zote kutoka
'a' hadi 'd'.
Tutaangalia kwa mifano.
Mfano
Katika mfano huu muundo wa utafutaji unaonekana
hivi: kati ya x herufi yoyote kutoka
'a' hadi 'z':
Matokeo ya utekelezaji wa kificho:
'! ! ! x@x'
Mfano
Katika mfano huu muundo wa utafutaji unaonekana
hivi: kati ya x herufi yoyote kutoka
'a' hadi 'k':
txt = 'xax xbx xmx x@x'
res = re.sub('x[a-k]x', '!', txt)
print(res)
Matokeo ya utekelezaji wa kificho:
'! ! xmx x@x'
Mfano
Katika mfano huu muundo wa utafutaji unaonekana
hivi: kati ya x herufi yoyote kutoka
'A' hadi 'Z':
txt = 'xax xBx xcx x@x'
res = re.sub('x[A-Z]x', '!', txt)
print(res)
Matokeo ya utekelezaji wa kificho:
'xax ! xcx x@x'
Mfano
Katika mfano huu muundo wa utafutaji unaonekana
hivi: kati ya x nambari yoyote kutoka 0
hadi 9:
txt = 'xax x1x x3x x5x x@x'
res = re.sub('x[0-9]x', '!', txt)
print(res)
Matokeo ya utekelezaji wa kificho:
'xax ! ! ! x@x'
Mfano
Katika mfano huu muundo wa utafutaji unaonekana
hivi: kati ya x nambari yoyote kutoka 3
hadi 7:
txt = 'xax x1x x3x x5x x@x'
res = re.sub('x[3-7]x', '!', txt)
print(res)
Matokeo ya utekelezaji wa kificho:
'xax x1x ! ! x@x'
Mfano
Katika mfano huu muundo wa utafutaji unaonekana
hivi: kati ya x herufi yoyote kutoka
'a' hadi 'z' au nambari kutoka
1 hadi 9:
txt = 'xax x1x x3x x5x x@x'
res = re.sub('x[a-z1-9]x', '!', txt)
print(res)
Matokeo ya utekelezaji wa kificho:
'! ! ! ! x@x'
Mfano
Katika mfano huu muundo wa utafutaji unaonekana
hivi: kati ya x herufi yoyote kutoka
'a' hadi 'z' au herufi kutoka
'A' hadi 'Z':
txt = 'xax xBx xcx x5x x@x'
res = re.sub('x[a-zA-Z]x', '!', txt)
print(res)
Matokeo ya utekelezaji wa kificho:
'! ! ! x5x x@x'
Mfano
Katika mfano huu muundo wa utafutaji unaonekana
hivi: kati ya x herufi yoyote kutoka
'a' hadi 'z' au nambari 1,
2:
txt = 'xax xbx x1x x2x x3x'
res = re.sub('x[a-z12]x', '!', txt)
print(res)
Matokeo ya utekelezaji wa kificho:
'! ! ! ! x3x'
Mfano
Katika mfano huu muundo wa utafutaji unaonekana
hivi: kati ya x herufi kutoka 'a'
hadi 'z' kwa idadi kutoka 1 na
zaidi:
txt = 'xx xabesx xaadx x123x xa3x'
res = re.sub('x[a-z]+x', '!', txt)
print(res)
Matokeo ya utekelezaji wa kificho:
'xx ! ! ! x123x xa3x'
Mfano
Tufanye ili idadi ya herufi iweze kuwa sifuri pia:
txt = 'xx xabesx xaadx x123x xa3x'
res = re.sub('x[a-z]*x', '!', txt)
print(res)
Kwa matokeo tutapata:
'! ! ! ! x123x xa3x'
Mfano
Ndani ya mabano ya mraba pia unaweza kubainisha herufi zilizokingwa. Hebu tupate mfuatano wa herufi na nambari, ukirudiwa mara sifuri au zaidi:
txt = 'xx x@x xadx xas12x xa3x'
res = re.sub('x[a-z\d]*x', '!', txt)
print(res)
Matokeo ya utekelezaji wa kificho:
'! x@x ! ! !'
Mfano
Ikiwa tunahitaji kubainisha mabano mengine ya mraba, basi tunayakinga pia:
txt = 'xx xrx xas[]x x3x'
res = re.sub('x[a-z\[\]]*x', '!', txt)
print(res)
Matokeo ya utekelezaji wa kificho:
'! ! ! x3x'
Shughuli za Vitendo
Kuna mfuatano:
txt = 'aba aea aca aza axa'
Andika usemi wa kawaida, utakao pata kwa
muundo ufuatao: kwenye kingo kuna herufi
'a', na kati yao - herufi 'b',
'e' au 'x'.
Kuna mfuatano:
txt = 'a1a a3a a7a a9a aba'
Andika usemi wa kawaida, utakao pata kwa
muundo ufuatao: kwenye kingo kuna herufi
'a', na kati yao - nambari kutoka
3 hadi 6.
Kuna mfuatano:
txt = 'aba aea afa aha aga'
Andika usemi wa kawaida, utakao pata kwa
muundo ufuatao: kwenye kingo kuna herufi
'a', na kati yao - herufi kutoka
'a' hadi 'g'.
Kuna mfuatano:
txt = 'aba aea afa aha aga'
Andika usemi wa kawaida, utakao pata kwa
muundo ufuatao: kwenye kingo kuna herufi
'a', na kati yao - herufi kutoka
'a' hadi 'f' na kutoka 'j'
hadi 'z'.
Kuna mfuatano:
txt = 'aAa aea aEa aJa a3a'
Andika usemi wa kawaida, utakao pata kwa
muundo ufuatao: kwenye kingo kuna herufi
'a', na kati yao - herufi kutoka
'a' hadi 'f' na kutoka 'A'
hadi 'D'.
Kuna mfuatano:
txt = 'aAXa aeffa aGha aza ax23a a3sSa'
Andika usemi wa kawaida, utakao pata kwa
muundo ufuatao: kwenye kingo kuna herufi
'a', na kati yao - herufi ndogo
za Kilatini, bila kugusa zingine.
Kuna mfuatano:
txt = 'aAXa aeffa aGha aza ax23a a3sSa'
Andika usemi wa kawaida, utakao pata kwa
muundo ufuatao: kwenye kingo kuna herufi
'a', na kati yao - herufi ndogo na
herufi kubwa za Kilatini, bila kugusa
zingine.
Kuna mfuatano:
txt = 'aAXa aeffa aGha aza ax23a a3sSa'
Andika usemi wa kawaida, utakao pata kwa
muundo ufuatao: kwenye kingo kuna herufi
'a', na kati yao - herufi ndogo
za Kilatini na nambari, bila kugusa
zingine.