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?

Susan Sarandon
Susan Sarandonasal
2024-12-02 17:06:11979semak imbas

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

Adakah Ungkapan Biasa daripada Modul semula Sempadan Perkataan Menyokong (b)?

Semasa cuba menggunakan urutan pelarian b untuk memadankan sempadan perkataan dalam modul semula Python, ketidakkonsistenan mungkin timbul. Coretan kod berikut menunjukkan perkara ini:

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

Anehnya, objek padanan yang dijangka tidak hadir, sebaliknya mengembalikan Tiada. Ini menimbulkan persoalan sama ada Python menyokong ungkapan b atau jika penggunaannya tidak betul.

Percanggahan berpunca daripada penggunaan rentetan biasa dalam kod. Rentetan mentah hendaklah digunakan sebaliknya, seperti yang ditunjukkan di bawah:

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

Pengubahsuaian ini menyelesaikan isu, menghasilkan objek padanan seperti yang dimaksudkan.

Selain itu, pertimbangkan untuk menggunakan pendekatan berikut:

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

Ini memastikan pemadanan yang tidak peka huruf besar-besaran, berpotensi mengembangkan skop perlawanan yang berjaya.

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!

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