⊗pyPmRELAB 72 of 129 menu

Pemerhatian Positif dan Negatif dalam Ungkapan Biasa Python

Kadang-kadang kita perlu menyelesaikan masalah seperti ini: cari rentetan 'aaa' dan gantikannya dengan '!', tetapi hanya jika selepas 'aaa' ada 'x', dan 'x' itu sendiri tidak diganti. Jika kita cuba menyelesaikan masalah ini 'secara terus', kita tidak akan berjaya:

txt = 'aaax baaa' res = re.sub('aaax', '!', txt) print(res) # akan output '! baaa', tetapi kita mahu '!x baaa'

Pemerhatian Ke Hadapan

Untuk menyelesaikan masalah ini, kita perlukan cara untuk menyatakan bahawa 'x' tidak patut diganti. Ini dilakukan dengan menggunakan kurungan khas (?= ), yang hanya memerhati, tetapi tidak mengambil bersama.

Kurungan ini dipanggil pemerhatian positif ke hadapan. Positif - kerana 'x' (dalam kes kita) mesti ada - barulah penukaran akan berlaku.

Mari gunakan kurungan ini untuk menyelesaikan masalah kita:

txt = 'aaax baaa' res = re.sub('aaa(?=x)', '!', txt) print(res) # akan output '!x aaab

Terdapat juga pemerhatian negatif ke hadapan - (?! ) - ia, sebaliknya, menyatakan bahawa sesuatu itu TIDAK patut ada. Dalam contoh berikutnya, penukaran akan berlaku hanya jika selepas 'aaa' BUKAN 'x':

txt = 'aaax aaab' res = re.sub('aaa(?!x)', '!', txt) print(res) # akan output 'aaax !b'

Pemerhatian Ke Belakang

Secara analogi, terdapat pemerhatian positif ke belakang - (?<= ). Dalam contoh berikut, penukaran akan berlaku hanya jika sebelum 'aaa' ada 'x':

txt = 'xaaa' res = re.sub('(?<=x)aaa', '!', txt) print(res) # akan output 'x!'

Dan terdapat juga pemerhatian negatif ke belakang - (?<! ). Dalam contoh berikutnya penukaran akan berlaku hanya jika sebelum 'aaa' TIDAK ada 'x':

txt = 'baaa' res = re.sub('(?<!x)aaa', '!', txt) print(res) # akan output 'b!'

Masalah Praktikal

Diberi satu rentetan yang mengandungi nama fungsi:

txt = 'func1() func2() func3()'

Dapatkan array nama fungsi daripada rentetan tersebut.

Diberi satu rentetan dengan tag:

txt = '<a href="" class="eee" id="zzz">'

Dapatkan array nama atribut untuk tag ini.

Diberi satu rentetan dengan pembolehubah:

txt = '$aaa $bbb $ccc xxxx'

Dapatkan subrentetan yang didahului oleh simbol dolar.

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