Kumpulan Aksara dalam Ungkapan Biasa Python
Terdapat perintah khas yang membolehkan anda
memilih keseluruhan kumpulan aksara sekaligus.
Perintah \d bermaksud digit dari
0 hingga 9. Perintah \w
menandakan digit, huruf Latin, atau aksara
garis bawah. Perintah \s menandakan
ruang atau aksara jarak: ruang,
baris baru, tab. Anda boleh menyongsangkan
nilai perintah dengan menulis huruf besar:
contohnya, jika \d - digit, maka
\D - bukan digit.
Contoh
Mari cari semua digit:
txt = '1 12 123'
res = re.sub('\d', '!', txt)
print(res)
Keputusan pelaksanaan kod:
'! !! !!!'
Contoh
Pengendali pengulangan menganggap perintah-kumpulan
sebagai satu keseluruhan, iaitu kurungan pengelompokan
tidak diperlukan. Dalam contoh berikut, corak carian
kelihatan seperti ini: digit dari 0 hingga
9 satu kali atau lebih:
txt = '1 12 123 abc @@@'
res = re.sub('\d+', '!', txt)
print(res)
Keputusan pelaksanaan kod:
'! ! ! abc @@@'
Contoh
Dalam contoh berikut, corak carian kelihatan
seperti ini: apa sahaja satu kali atau lebih,
tetapi bukan digit dari 0 hingga 9:
txt = '123abc3@@'
res = re.sub('\D+', '!', txt)
print(res)
Keputusan pelaksanaan kod:
'123!3!'
Contoh
Dalam contoh ini, corak carian kelihatan seperti ini: aksara jarak satu kali:
txt = '1 12 123 abc @@@'
res = re.sub('\s', '!', txt)
print(res)
Keputusan pelaksanaan kod:
'1!12!123!abc!@@@'
Contoh
Dalam contoh ini, corak carian kelihatan
seperti ini: BUKAN aksara jarak satu kali atau lebih
kali. Semua subrentetan, dipisahkan
oleh ruang, akan digantikan dengan '!':
txt = '1 12 123 abc @@@'
res = re.sub('\S+', '!', txt)
print(res)
Keputusan pelaksanaan kod:
'! ! ! ! !'
Contoh
Dalam contoh ini, corak carian kelihatan
seperti ini: digit atau huruf satu kali atau lebih
kali. Semua subrentetan, terdiri daripada digit
dan huruf, akan digantikan dengan '!':
txt = '1 12 123a Abc @@@'
res = re.sub('\w+', '!', txt)
print(res)
Keputusan pelaksanaan kod:
'! ! ! ! @@@'
Contoh
Dalam contoh ini, corak carian kelihatan
seperti ini: BUKAN digit dan BUKAN huruf satu kali atau lebih
kali. Dalam kes kami, definisi ini
merangkumi '@@@' dan semua ruang
(mereka juga bukan digit dan bukan huruf).
Perhatikan bahawa pada akhirnya satu
'!' - ke dalamnya bertukar rentetan
' @@@' - dengan ruang di depan:
txt = '1 12 123 Abc @@@'
res = re.sub('\W+', '!', txt)
print(res)
Keputusan pelaksanaan kod:
'1!12!123!Abc!'
Tugas Praktikal
Diberi rentetan:
txt = 'a1a a2a a3a a4a a5a aba aca'
Tulis ungkapan biasa yang akan mencari rentetan,
di mana di tepinya terdapat huruf 'a',
dan di antaranya satu digit.
Diberi rentetan:
txt = 'a1a a22a a333a a4444a a55555a aba aca'
Tulis ungkapan biasa yang akan mencari rentetan,
di mana di tepinya terdapat huruf 'a',
dan di antaranya sebarang bilangan digit.
Diberi rentetan:
txt = 'aa a1a a22a a333a a4444a a55555a aba aca'
Tulis ungkapan biasa yang akan mencari rentetan,
di mana di tepinya terdapat huruf 'a',
dan di antaranya sebarang bilangan digit (termasuk
sifar digit, iaitu rentetan
'aa').
Diberi rentetan:
txt = 'avb a1b a2b a3b a4b a5b abb acb'
Tulis ungkapan biasa yang akan mencari rentetan
berbentuk seperti berikut: di tepinya terdapat huruf
'a' dan 'b', dan di antaranya -
bukan nombor dan bukan ruang.
Diberi rentetan:
txt = 'ave a#b a2b a$b a4b a5b a-b acb'
Tulis ungkapan biasa yang akan mencari rentetan
berbentuk seperti berikut: di tepinya terdapat huruf
'a' dan 'b', dan di antaranya -
bukan huruf, bukan digit dan bukan ruang.
Diberi rentetan:
txt = 'ave a#a a2a a$a a4a a5a a-a aca'
Tulis ungkapan biasa yang akan menggantikan semua
ruang dengan '!'.