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':

<

+Python+> txt = 'xax xbx xcx x@x' res = re.sub('x[a-z]x', '!', txt) print(res)

<

-python->

Keputusan pelaksanaan kod:

python'! ! ! x@x'

Contoh

Dalam contoh ini, corak carian kelihatan seperti ini: antara x mana-mana huruf dari 'a' hingga 'k':

pythontxt = 'xax xbx xmx x@x'
res = re.sub('x[a-k]x', '!', txt)

print(res)

Keputusan pelaksanaan kod:

python'! ! xmx x@x'

Contoh

Dalam contoh ini, corak carian kelihatan seperti ini: antara x mana-mana huruf dari 'A' hingga 'Z':

pythontxt = 'xax xBx xcx x@x'
res = re.sub('x[A-Z]x', '!', txt)

print(res)

Keputusan pelaksanaan kod:

python'xax ! xcx x@x'

Contoh

Dalam contoh ini, corak carian kelihatan seperti ini: antara x mana-mana digit dari 0 hingga 9:

pythontxt = 'xax x1x x3x x5x x@x'
res = re.sub('x[0-9]x', '!', txt)

print(res)

Keputusan pelaksanaan kod:

python'xax ! ! ! x@x'

Contoh

Dalam contoh ini, corak carian kelihatan seperti ini: antara x mana-mana digit dari 3 hingga 7:

pythontxt = 'xax x1x x3x x5x x@x'
res = re.sub('x[3-7]x', '!', txt)

print(res)

Keputusan pelaksanaan kod:

python'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:

pythontxt = 'xax x1x x3x x5x x@x'
res = re.sub('x[a-z1-9]x', '!', txt)

print(res)

Keputusan pelaksanaan kod:

python'! ! ! ! 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':

pythontxt = 'xax xBx xcx x5x x@x'
res = re.sub('x[a-zA-Z]x', '!', txt)

print(res)

Keputusan pelaksanaan kod:

python'! ! ! 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:

pythontxt = 'xax xbx x1x x2x x3x'
res = re.sub('x[a-z12]x', '!', txt)

print(res)

Keputusan pelaksanaan kod:

python'! ! ! ! x3x'

Contoh

Dalam contoh ini, corak carian kelihatan seperti ini: antara x huruf dari 'a' hingga 'z' dalam kuantiti dari 1 dan lebih:

pythontxt = 'xx xabesx xaadx x123x xa3x'
res = re.sub('x[a-z]+x', '!', txt)

print(res)

Keputusan pelaksanaan kod:

python'xx ! ! ! x123x xa3x'

Contoh

Mari buat supaya kuantiti huruf boleh menjadi sifar:

pythontxt = 'xx xabesx xaadx x123x xa3x'
res = re.sub('x[a-z]*x', '!', txt)

print(res)

Hasilnya kita akan dapat:

python'! ! ! ! x123x xa3x'

Contoh

Di dalam kurungan siku juga boleh dinyatakan karakter yang dilindungi. Mari cari jujukan huruf dan digit, berulang sifar atau lebih kali:

pythontxt = 'xx x@x xadx xas12x xa3x'
res = re.sub('x[a-z\d]*x', '!', txt)

print(res)

Keputusan pelaksanaan kod:

python'! x@x ! ! !'

Contoh

Jika kita perlu menyatakan kurungan siku yang lain, maka kita juga mesti melindunginya:

pythontxt = 'xx xrx xas[]x x3x'
res = re.sub('x[a-z\[\]]*x', '!', txt)

print(res)

Keputusan pelaksanaan kod:

python'! ! ! x3x'

Tugas Praktikal

Задание 1

Diberi rentetan:

pythontxt = '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'.

Задание 2

Diberi rentetan:

pythontxt = '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.

Задание 3

Diberi rentetan:

pythontxt = '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'.

Задание 4

Diberi rentetan:

pythontxt = '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'.

Задание 5

Diberi rentetan:

pythontxt = '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'.

Задание 6

Diberi rentetan:

pythontxt = '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.

Задание 7

Diberi rentetan:

pythontxt = '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.

Задание 8

Diberi rentetan:

pythontxt = '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.