Rumah > pembangunan bahagian belakang > Tutorial Python > Adakah Modul `re` Python Mengendalikan Sempadan Perkataan (`\b`) dengan Betul dalam Ungkapan Biasa?

Adakah Modul `re` Python Mengendalikan Sempadan Perkataan (`\b`) dengan Betul dalam Ungkapan Biasa?

DDD
Lepaskan: 2024-12-08 09:03:12
asal
489 orang telah melayarinya

Does Python's `re` Module Properly Handle Word Boundaries (`b`) in Regular Expressions?

Adakah Ungkapan Biasa daripada Modul semula Sempadan Kata Sokongan (b)?

Semasa meneroka ungkapan biasa, cadangan biasa adalah menggunakan b urutan aksara untuk memadankan sempadan perkataan. Walau bagaimanapun, apabila menggunakan teknik ini dalam Python, hasil yang tidak dijangka mungkin timbul.

Pertimbangkan senario berikut:

x = 'one two three'
y = re.search("\btwo\b", x)
Salin selepas log masuk

Jangkaan adalah untuk y menjadi objek padanan jika corak sepadan dengan apa-apa. Walau bagaimanapun, y kekal Tiada, menunjukkan tiada padanan.

Memahami Isu

Sebab bagi tingkah laku yang tidak dijangka ini terletak pada penggunaan rentetan mentah. Dengan menggunakan rentetan mentah (dengan awalan r), aksara khas seperti urutan melarikan diri dan garis miring ke belakang boleh ditafsirkan secara literal. Tanpa rentetan mentah, Python mentafsirkan sebagai watak melarikan diri, yang mengganggu penggunaan b yang dimaksudkan.

Untuk membetulkan isu ini, rentetan mentah harus digunakan:

x = 'one two three'
y = re.search(r"\btwo\b", x)
Salin selepas log masuk

Dengan pengubahsuaian ini , y akan menjadi objek padanan, dengan tepat mencerminkan padanan sempadan perkataan yang dimaksudkan.

Tambahan Petua

Selain itu, pendekatan alternatif boleh digunakan untuk memadankan sempadan perkataan dengan berkesan:

  • Menggunakan Corak Sempadan Perkataan Tersuai: Cipta corak tersuai dengan sempadan perkataan, seperti r'b%sb' % perkataan di mana perkataan mewakili sasaran teks.
  • Mengabaikan Kes: Tambahkan bendera re.I pada kompilasi regex untuk melakukan pemadanan tidak sensitif huruf besar-besaran, memastikan skop padanan yang lebih luas.

Oleh menggunakan teknik ini, anda boleh menggunakan padanan sempadan perkataan dengan ungkapan biasa dalam Python dengan berkesan.

Atas ialah kandungan terperinci Adakah Modul `re` Python Mengendalikan Sempadan Perkataan (`\b`) dengan Betul dalam Ungkapan Biasa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan