⊗pyPmRESF 73 of 129 menu

Bendera untuk Rentetan Ungkapan Biasa dalam Python

Untuk menetapkan bendera sebagai salah satu parameter pilihan untuk kaedah yang bekerja dengan ungkapan biasa, sintaks berikut digunakan:

flags=re.nama_bendera

Bendera utama untuk bekerja dengan ungkapan biasa

Bendera Tujuan
re.IGNORECASE Mengabaikan kes huruf penulisan aksara.
re.DOTALL Titik menandakan sebarang aksara, termasuk dan pemindahan baris.
re.I Menjadikan carian tidak sensitif kepada kes.
re.L Mencari perkataan mengikut bahasa semasa. Tafsiran ini melibatkan kumpulan abjad (\w dan \W), dan juga tingkah laku sempadan perkataan (\b dan \B).
re.M Aksara $ melakukan carian di hujung sebarang baris teks (bukan hanya hujung teks) dan aksara ^ melakukan carian di awal sebarang baris teks (bukan hanya di awal teks).
re.S Mengubah nilai titik (.) kepada padanan dengan sebarang aksara, termasuk baris baharu.
re.U Menafsirkan huruf mengikut set aksara Unicode. Bendera ini mempengaruhi tingkah laku \w, \W, \b, \B. Dalam Python 3+ bendera ini ditetapkan secara lalai.
re.X Membenarkan sintaks ungkapan biasa berbilang baris. Ia mengabaikan ruang kosong di dalam pola (kecuali ruang kosong di dalam set [] atau apabila dilindungi oleh garis miring belakang) dan mengendalikan '#' yang tidak dilindungi sebagai komen.

Contoh

Dengan menggunakan bendera re.IGNORECASE, anda boleh mengabaikan kes huruf aksara. Mari kita lihat bagaimana ia dilakukan. Dalam contoh ini, ungkapan biasa akan menemui hanya huruf kecil:

txt = 'aaa bbb CCC DDD' res = re.sub('[a-z]+', '!', txt) print(res)

Keputusan pelaksanaan kod:

'! ! CCC DDD'

Contoh

Dan sekarang tambahkan dalam parameter keempat kaedah bendera re.IGNORECASE dan ungkapan biasa akan mula mencari aksara dalam semua kes:

txt = 'aaa AAA bbb BBB' res = re.sub('[a-z]+', '!', txt, flags=re.IGNORECASE) print(res)

Keputusan pelaksanaan kod:

'! ! ! !'

Contoh

Mari cari dengan ungkapan biasa semua pemindahan baris:

txt = '''aaa bbb''' res = re.sub('\n', '!', txt) print(res)

Keputusan kod yang dilaksanakan:

'aaa!bbb'

Contoh

Tetapi, jika perlu untuk menggantikan kesemua aksara, maka dengan meletakkan titik dalam ungkapan biasa, pemindahan baris tidak akan diambil:

txt = '''aaa bbb''' res = re.sub('.', '!', txt) print(res)

Keputusan kod yang dilaksanakan:

'!!! !!!'

Contoh

Untuk membetulkan ralat ini, anda patut menggunakan bendera re.DOTALL:

res = re.sub('.', '!', txt, flags=re.DOTALL) print(res)

Keputusan kod yang dilaksanakan:

'!!!!!!!'

Contoh

Dalam parameter, beberapa bendera boleh dihantar, dengan meletakkan operator + antara mereka. Mari mula-mula gantikan huruf 'a' di hujung baris:

txt = ''' aaa AAA aaa''' res = re.sub('aaa , '!', txt) print(res)

Keputusan kod yang dilaksanakan:

''' aaa AAA ! '''

Contoh

Sekarang tetapkan bendera re.M:

res = re.sub('aaa , '!', txt, flags=re.M) print(res)

Keputusan kod yang dilaksanakan:

''' ! AAA ! '''

Contoh

Sekarang mari gunakan juga bendera untuk mengabaikan kes:

res = re.sub('aaa , '!', txt, flags=re.M+re.IGNORECASE) print(res)

Keputusan kod yang dilaksanakan:

''' ! ! ! '''
Melayu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Kami menggunakan kuki untuk operasi laman web, analisis dan personalisasi. Pemprosesan data dijalankan mengikut Polisi Kerahsiaan.
terima semua tataletak tolak