Pengendali Pengulangan Aksara dalam Ungkapan Biasa
Terdapat situasi di mana anda perlu menentukan bahawa
aksara diulang sebilangan kali tertentu.
Jika bilangan ulangan yang tepat tidak diketahui,
anda boleh menulisnya beberapa kali
- 'aaaa'. Tetapi apa yang perlu dilakukan jika anda perlu
menyatakan ini: ulang satu kali atau lebih?
Untuk ini, terdapat pengendali (kuantifier)
pengulangan: tambah + (satu atau lebih
kali), bintang * (sifar atau lebih
kali) dan soal ? (sifar atau satu kali).
Pengendali ini bertindak pada aksara
yang berada di hadapannya.
Mari kita lihat cara pengendali ini berfungsi melalui contoh.
Contoh
Mari cari semua subrentetan mengikut corak aksara
'x', aksara 'a' satu kali atau lebih,
aksara 'x':
txt = 'xx xax xaax xaaax xbx'
res = re.sub('xa+x', '!', txt)
print(res)
Keputusan pelaksanaan kod:
'xx ! ! ! xbx'
Contoh
Mari cari semua subrentetan mengikut corak aksara
'x', aksara 'a' sifar atau lebih kali,
aksara 'x':
txt = 'xx xax xaax xaaax xbx'
res = re.sub('xa*x', '!', txt)
print(res)
Keputusan pelaksanaan kod:
'! ! ! ! xbx'
Contoh
Mari cari semua subrentetan mengikut corak aksara
'x', aksara 'a' sifar atau satu
kali, aksara 'x':
txt = 'xx xax xaax xbx'
res = re.sub('xa?x', '!', txt)
print(res)
Keputusan pelaksanaan kod:
'! ! xaax xbx'
Masalah Praktikal
Diberi rentetan:
txt = 'aa aba abba abbba abca abea'
Tulis ungkapan biasa yang akan mencari rentetan
'aba', 'abba', 'abbba'
mengikut corak: aksara 'a', aksara
'b' sebarang bilangan kali, aksara
'a'.
Diberi rentetan:
txt = 'aa aba abba abbba abca abea'
Tulis ungkapan biasa yang akan mencari rentetan
'aa', 'aba', 'abba',
'abbba' mengikut corak: aksara
'a', aksara 'b' sebarang bilangan kali
(termasuk sifar kali), aksara
'a'.
Diberi rentetan:
txt = 'aa aba abba abbba abca abea'
Tulis ungkapan biasa yang akan mencari rentetan
'aa', 'aba' mengikut corak:
aksara 'a', aksara 'b' satu
kali atau sifar, aksara 'a'.
Diberi rentetan:
txt = 'aa aba abba abbba abca abea'
Tulis ungkapan biasa yang akan mencari rentetan
'aa', 'aba', 'abba',
'abbba', tanpa mengambil 'abca'
dan 'abea'.