Tanda Sempang dalam Set Tanda Kurung Ungkapan Biasa Python
Tanda sempang - juga aksara khas dalam [ ]
(tetapi di luar - tidak). Jika anda memerlukan tanda sempang
sebagai aksara - letakkannya di tempat,
di mana ia tidak akan difahami sebagai pemisah
kumpulan.
Mengapa ini penting: anda mungkin membuat kumpulan
aksara tanpa menyedarinya. Sebagai contoh,
seperti ini - '[:-@]' - anda fikir anda
memilih tanda titik bertindih, tanda sempang dan tanda @,
tetapi sebenarnya yang terhasil adalah kumpulan aksara antara
: dan @. Kumpulan ini termasuk
aksara berikut: ? < = > :
Dari mana ia datang? Dari jadual ASCII - tanda titik bertindih mempunyai nombor yang lebih kecil daripada tanda @ - dan terhasilnya kumpulan. Maksudnya semua kumpulan terhasil mengikut jadual ASCII (jika mahu, ini boleh digunakan).
Bagaimana menanganinya: letakkan aksara
tanda sempang di tempat di mana ia pasti tidak akan difahami
sebagai aksara kumpulan, contohnya, di awal atau
di akhir (iaitu selepas [ atau sebelum
]).
Anda juga boleh melarikan tanda sempang - maka
ia akan mewakili dirinya sendiri tanpa mengira
kedudukan. Sebagai contoh, gantikan [:-@]
dengan [:\-@] - dan kumpulan tidak akan
wujud lagi, sebaliknya akan terdapat tiga aksara - tanda titik bertindih,
tanda sempang dan tanda @ @.
Contoh
Dalam contoh berikut, corak carian adalah seperti berikut:
digit 1, kemudian huruf dari 'a'
hingga 'z', kemudian digit 2:
txt = '1a2 1-2 1c2 1z2'
res = re.sub('1[a-z]2', '!', txt)
print(res)
Keputusan pelaksanaan kod:
'! 1-2 ! !'
Contoh
Sekarang mari kita lari tanda sempang.
Hasilnya, corak carian adalah seperti berikut: digit
1, kemudian huruf 'a', atau
tanda sempang, atau huruf 'z', kemudian digit
2:
txt = '1a2 1-2 1c2 1z2'
res = re.sub('1[a\-z]2', '!', txt)
print(res)
Keputusan pelaksanaan kod:
'! ! 1c2 !'
Contoh
Anda boleh hanya mengubah kedudukan tanda sempang, tanpa melarikan ia:
txt = '1a2 1-2 1c2 1z2'
res = re.sub('1[az-]2', '!', txt)
print(res)
Keputusan pelaksanaan kod:
'! ! 1c2 !'
Contoh
Dalam contoh berikut, corak carian adalah seperti berikut:
aksara pertama - huruf kecil atau
tanda sempang '-', kemudian dua huruf
'x':
txt = 'axx Axx -xx @xx'
res = re.sub('[a-z-]xx', '!', txt)
print(res)
Keputusan pelaksanaan kod:
'! Axx ! @xx'
Contoh
Dalam contoh berikut, corak carian adalah seperti berikut:
aksara pertama - huruf kecil, huruf besar
atau tanda sempang '-', kemudian dua huruf
'x':
txt = 'axx Axx -xx @xx'
res = re.sub('[a-zA-Z-]xx', '!', txt)
print(res)
Keputusan pelaksanaan kod:
'! ! ! @xx'
Contoh
Anda boleh meletakkan tanda sempang antara dua kumpulan - di sana ia pasti tidak akan membuat satu lagi kumpulan:
txt = 'axx 9xx -xx @xx'
res = re.sub('[a-z-0-9]xx', '!', txt)
print(res)
Keputusan pelaksanaan kod:
'! ! ! @xx'
Tugas Praktikal
Diberi rentetan:
txt = 'xaz xBz xcz x-z x@z'
Cari semua rentetan mengikut corak berikut:
huruf 'x', huruf besar atau huruf kecil
atau tanda sempang, huruf 'z'.
Diberi rentetan:
txt = 'xaz x$z x-z xcz x+z x%z x*z'
Cari semua rentetan mengikut corak berikut:
huruf 'x', kemudian tanda dolar, atau
tanda sempang atau tanda tambah, kemudian huruf 'z'.