Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapa Sempadan Kata Python Regex \b Saya Gagal, dan Bagaimana Saya Boleh Membetulkannya?

Mengapa Sempadan Kata Python Regex \b Saya Gagal, dan Bagaimana Saya Boleh Membetulkannya?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-19 10:13:14367semak imbas

Why Does My Python Regex b Word Boundary Fail, and How Can I Fix It?

Word Boundary (b) dalam Ungkapan Biasa Python dengan Modul semula

Apabila bekerja dengan ungkapan biasa dalam Python menggunakan modul semula, anda boleh menghadapi kekeliruan mengenai tingkah laku ungkapan sempadan perkataan (b). Jawapan ini menangani isu biasa yang dihadapi pengguna apabila cuba memadankan sempadan perkataan.

Ungkapan b, biasanya digunakan untuk mengenal pasti sempadan antara perkataan dan mana-mana aksara lain, nampaknya gagal dalam senario tertentu. Pertimbangkan contoh berikut:

>>> x = 'one two three'
>>> y = re.search("\btwo\b", x)

Dijangkakan, objek padanan harus dikembalikan, tetapi sebaliknya, ia adalah Tiada. Keputusan yang membingungkan ini boleh menyebabkan seseorang bertanya sama ada b disokong dalam Python.

Walau bagaimanapun, isunya bukan terletak pada ungkapan b itu sendiri tetapi pada rentetan yang anda gunakan. Dalam Python, rentetan yang mengandungi garis miring ke belakang memerlukan rawatan khas sebagai urutan melarikan diri. Untuk mengelakkan perkara ini, anda harus menggunakan rentetan mentah.

>>> x = 'one two three'
>>> y = re.search(r"\btwo\b", x)
>>> y
<_sre.SRE_Match object at 0x100418a58>

Dengan menambahkan awalan "r", anda mencipta rentetan mentah yang mana garis miring ke belakang dianggap sebagai aksara literal, termasuk ungkapan b. Ini membolehkan Python memadankan sempadan perkataan dengan betul.

Sebagai alternatif, anda juga boleh menggunakan fungsi re.compile() untuk mencipta corak ungkapan biasa yang merangkumi perkataan yang anda mahu padankan:

word = 'two'
k = re.compile(r'\b%s\b' % word, re.I)

Pendekatan ini menghasilkan corak terkumpul yang boleh digunakan dengan cekap pada berbilang rentetan atau digunakan dalam operasi ungkapan biasa yang kompleks.

Ringkasnya, ingat untuk menggunakan rentetan mentah atau fungsi re.compile() untuk pengendalian yang betul bagi ungkapan sempadan perkataan dalam modul semula Python.

Atas ialah kandungan terperinci Mengapa Sempadan Kata Python Regex \b Saya Gagal, dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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