Set Karakter dalam Ungkapan Biasa Python
Kumpulan karakter \d dan \w tidak
sangat fleksibel. Malah tugas mudah seperti
cari semua huruf, tetapi bukan digit -
tidak dapat diselesaikan oleh mereka. Untuk tugas sedemikian,
gunakan kurungan siku,
yang mewakili operasi 'atau'.
Kurungan siku menggantikan satu
karakter, mana-mana yang disenaraikan di dalamnya.
Sebagai contoh, seperti ini: x[abc]x - kita
katakan bahawa di tepi mesti ada huruf
x, dan di dalam - satu karakter: sama ada 'a',
atau 'b', atau 'c'.
Selepas kurungan siku, anda boleh menulis
pengendali pengulangan. Sebagai contoh, seperti ini:
x[abc]+x - kita katakan bahawa di dalam
x boleh ada sebarang bilangan karakter
'a', 'b' dan 'c' - dalam
sebarang kombinasi.
Anda bukan sahaja boleh menyenaraikan karakter, tetapi
juga mencipta kumpulan karakter dengan menulis antara
dua karakter tanda sambung. Sebagai contoh, seperti ini:
[a-d] - kita mendapat semua karakter dari
'a' hingga 'd'.
Mari lihat contohnya.
Contoh
Dalam contoh ini, corak carian kelihatan
seperti ini: antara x mana-mana huruf dari
'a' hingga 'z':
Keputusan pelaksanaan kod:
'! ! ! x@x'
Contoh
Dalam contoh ini, corak carian kelihatan
seperti ini: antara x mana-mana huruf dari
'a' hingga 'k':
txt = 'xax xbx xmx x@x'
res = re.sub('x[a-k]x', '!', txt)
print(res)
Keputusan pelaksanaan kod:
'! ! xmx x@x'
Contoh
Dalam contoh ini, corak carian kelihatan
seperti ini: antara x mana-mana huruf dari
'A' hingga 'Z':
txt = 'xax xBx xcx x@x'
res = re.sub('x[A-Z]x', '!', txt)
print(res)
Keputusan pelaksanaan kod:
'xax ! xcx x@x'
Contoh
Dalam contoh ini, corak carian kelihatan
seperti ini: antara x mana-mana digit dari 0
hingga 9:
txt = 'xax x1x x3x x5x x@x'
res = re.sub('x[0-9]x', '!', txt)
print(res)
Keputusan pelaksanaan kod:
'xax ! ! ! x@x'
Contoh
Dalam contoh ini, corak carian kelihatan
seperti ini: antara x mana-mana digit dari 3
hingga 7:
txt = 'xax x1x x3x x5x x@x'
res = re.sub('x[3-7]x', '!', txt)
print(res)
Keputusan pelaksanaan kod:
'xax x1x ! ! x@x'
Contoh
Dalam contoh ini, corak carian kelihatan
seperti ini: antara x mana-mana huruf dari
'a' hingga 'z' atau digit dari
1 hingga 9:
txt = 'xax x1x x3x x5x x@x'
res = re.sub('x[a-z1-9]x', '!', txt)
print(res)
Keputusan pelaksanaan kod:
'! ! ! ! x@x'
Contoh
Dalam contoh ini, corak carian kelihatan
seperti ini: antara x mana-mana huruf dari
'a' hingga 'z' atau huruf dari
'A' hingga 'Z':
txt = 'xax xBx xcx x5x x@x'
res = re.sub('x[a-zA-Z]x', '!', txt)
print(res)
Keputusan pelaksanaan kod:
'! ! ! x5x x@x'
Contoh
Dalam contoh ini, corak carian kelihatan
seperti ini: antara x mana-mana huruf dari
'a' hingga 'z' atau digit 1,
2:
txt = 'xax xbx x1x x2x x3x'
res = re.sub('x[a-z12]x', '!', txt)
print(res)
Keputusan pelaksanaan kod:
'! ! ! ! x3x'
Contoh
Dalam contoh ini, corak carian kelihatan
seperti ini: antara x huruf dari 'a'
hingga 'z' dalam kuantiti dari 1 dan
lebih:
txt = 'xx xabesx xaadx x123x xa3x'
res = re.sub('x[a-z]+x', '!', txt)
print(res)
Keputusan pelaksanaan kod:
'xx ! ! ! x123x xa3x'
Contoh
Mari buat supaya kuantiti huruf boleh menjadi sifar:
txt = 'xx xabesx xaadx x123x xa3x'
res = re.sub('x[a-z]*x', '!', txt)
print(res)
Hasilnya kita akan dapat:
'! ! ! ! x123x xa3x'
Contoh
Di dalam kurungan siku juga boleh dinyatakan karakter yang dilindungi. Mari cari jujukan huruf dan digit, berulang sifar atau lebih kali:
txt = 'xx x@x xadx xas12x xa3x'
res = re.sub('x[a-z\d]*x', '!', txt)
print(res)
Keputusan pelaksanaan kod:
'! x@x ! ! !'
Contoh
Jika kita perlu menyatakan kurungan siku yang lain, maka kita juga mesti melindunginya:
txt = 'xx xrx xas[]x x3x'
res = re.sub('x[a-z\[\]]*x', '!', txt)
print(res)
Keputusan pelaksanaan kod:
'! ! ! x3x'
Tugas Praktikal
Diberi rentetan:
txt = 'aba aea aca aza axa'
Tulis ungkapan biasa yang akan mencari mengikut
corak berikut: di tepi terdapat huruf
'a', dan di antaranya - huruf 'b',
'e' atau 'x'.
Diberi rentetan:
txt = 'a1a a3a a7a a9a aba'
Tulis ungkapan biasa yang akan mencari mengikut
corak berikut: di tepi terdapat huruf
'a', dan di antaranya - digit dari
3 hingga 6.
Diberi rentetan:
txt = 'aba aea afa aha aga'
Tulis ungkapan biasa yang akan mencari mengikut
corak berikut: di tepi terdapat huruf
'a', dan di antaranya - huruf dari
'a' hingga 'g'.
Diberi rentetan:
txt = 'aba aea afa aha aga'
Tulis ungkapan biasa yang akan mencari mengikut
corak berikut: di tepi terdapat huruf
'a', dan di antaranya - huruf dari
'a' hingga 'f' dan dari 'j'
hingga 'z'.
Diberi rentetan:
txt = 'aAa aea aEa aJa a3a'
Tulis ungkapan biasa yang akan mencari mengikut
corak berikut: di tepi terdapat huruf
'a', dan di antaranya - huruf dari
'a' hingga 'f' dan dari 'A'
hingga 'D'.
Diberi rentetan:
txt = 'aAXa aeffa aGha aza ax23a a3sSa'
Tulis ungkapan biasa yang akan mencari mengikut
corak berikut: di tepi terdapat huruf
'a', dan di antaranya - huruf kecil
Latin, tanpa menjejaskan yang lain.
Diberi rentetan:
txt = 'aAXa aeffa aGha aza ax23a a3sSa'
Tulis ungkapan biasa yang akan mencari mengikut
corak berikut: di tepi terdapat huruf
'a', dan di antaranya - huruf kecil dan
besar Latin, tanpa menjejaskan
yang lain.
Diberi rentetan:
txt = 'aAXa aeffa aGha aza ax23a a3sSa'
Tulis ungkapan biasa yang akan mencari mengikut
corak berikut: di tepi terdapat huruf
'a', dan di antaranya - huruf kecil
Latin dan digit, tanpa menjejaskan
yang lain.