Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗pyPmREESCh 36 of 129 menu
◀ ▶

Melarikan Aksara Khas dalam Ungkapan Biasa Python

Katakan kita ingin aksara khas mewakili dirinya sendiri. Untuk itu, ia perlu dilarikan menggunakan slash belakang. Mari kita lihat contoh-contohnya.

Contoh

Dalam contoh berikut, pengarang ungkapan biasa ingin pola carian kelihatan seperti ini: huruf 'a', kemudian tanda tambah '+', kemudian huruf 'x'. Walau bagaimanapun, pengarang kod tidak melarikan aksara '+' dan oleh itu pola carian sebenarnya kelihatan seperti ini: huruf 'a' satu kali atau lebih, kemudian huruf 'x':

txt = 'a+x ax aax aaax' res = re.sub('a+x', '!', txt) print(res)

Keputusan pelaksanaan kod:

'a+x ! ! !'

Contoh

Sekarang pengarang telah melarikan tanda tambah dengan slash belakang. Sekarang pola carian kelihatan seperti yang dikehendaki: huruf 'a', kemudian tanda tambah '+', kemudian huruf 'x':

txt = 'a+x ax aax aaax' res = re.sub('a\+x', '!', txt) print(res)

Keputusan pelaksanaan kod:

'! ax aax aaax'

Contoh

Dalam contoh ini, pola kelihatan seperti ini: huruf 'a', kemudian titik '.', kemudian huruf 'x':

txt = 'a.x abx azx' res = re.sub('a\.x', '!', txt) print(res)

Keputusan pelaksanaan kod:

'! abx azx'

Contoh

Dalam contoh seterusnya, pengarang terlupa melarikan titik dan semua substring ditangkap oleh ungkapan biasa, kerana titik yang tidak dilarikan mewakili sebarang aksara:

txt = 'a.x abx azx' res = re.sub('a.x', '!', txt) print(res)

Keputusan pelaksanaan kod:

'! ! !'

Catatan

Perhatikan bahawa jika anda terlupa slash belakang untuk titik (apabila ia sepatutnya mewakili dirinya sendiri) - ini mungkin sukar untuk diperhatikan:

res = re.sub('a.x', '!', 'a.x') print(res) # mengembalikan '!', seperti yang kita mahukan

Secara visual ia berfungsi dengan betul (kerana titik mewakili sebarang aksara, termasuk titik biasa '.'). Tetapi jika kita menukar talian di mana penggantian berlaku - kita akan melihat kesilapan kita:

res = re.sub('a.x', '!', 'a.x abx azx') print(res) # mengembalikan '! ! !', tetapi dijangkakan '! abx azx'

Senarai aksara khas dan biasa

Jika kita melarikan aksara biasa - tiada masalah akan berlaku - ia tetap akan mewakili dirinya sendiri. Pengecualian - digit, mereka tidak boleh dilarikan.

Sering timbul keraguan, sama ada aksara tertentu adalah khas. Ada yang sampai melarikan semua aksara yang mencurigakan secara berturut-turut. Walau bagaimanapun, ini adalah amalan yang tidak baik (mengacaukan ungkapan biasa dengan slash belakang).

Aksara khas: $ ^ . * + ? \ / {} [] () |

Bukan aksara khas: @ : , ' " - _ = < > % # ~ `& !

Tugas praktikal

Diberi talian:

txt = 'a.a aba aea'

Tulis ungkapan biasa yang akan mencari talian 'a.a', tanpa menangkap yang lain.

Diberi talian:

txt = '2+3 223 2223'

Tulis ungkapan biasa yang akan mencari talian '2+3', tanpa menangkap yang lain.

Diberi talian:

txt = '23 2+3 2++3 2+++3 345 567'

Tulis ungkapan biasa yang akan mencari talian '2+3', '2++3', '2+++3', tanpa menangkap yang lain (+ boleh sebarang kuantiti).

Diberi talian:

txt = '23 2+3 2++3 2+++3 445 677'

Tulis ungkapan biasa yang akan mencari talian '23', '2+3', '2++3', '2+++3', tanpa menangkap yang lain.

Diberi talian:

txt = '*+ *q+ *qq+ *qqq+ *qqq qqq+'

Tulis ungkapan biasa yang akan mencari talian '*q+', '*qq+', '*qqq+', tanpa menangkap yang lain.

Diberi talian:

txt = '[abc] {abc} abc (abc) [abc]'

Tulis ungkapan biasa yang akan mencari talian dalam kurungan segi empat dan menggantikannya dengan '!'.

← →
↑
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