Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah `re.findall()` Mengendalikan Padanan Bertindih dalam Ungkapan Biasa?

Bagaimanakah `re.findall()` Mengendalikan Padanan Bertindih dalam Ungkapan Biasa?

Susan Sarandon
Lepaskan: 2024-12-11 14:06:12
asal
352 orang telah melayarinya

How Does `re.findall()` Handle Overlapping Matches in Regular Expressions?

Memahami Padanan Bertindih Regex

Apabila menggunakan re.findall() untuk memadankan ungkapan biasa, memahami cara padanan bertindih dikendalikan adalah penting. Secara lalai, re.findall() mengembalikan padanan tidak bertindih.

Kajian Kes: hello dan ww

Pertimbangkan corak berikut:

>>> match = re.findall(r'\w\w', 'hello')
>>> print match
['he', 'll']
Salin selepas log masuk

Seperti yang dijangkakan, corak ini sepadan dengan jujukan dua aksara. Walau bagaimanapun, ia tidak sepadan dengan 'el' atau 'lo' kerana masing-masing bertindih dengan 'dia' dan 'll'.

Perlawanan Bertindih dengan Penegasan Pandang Ke Hadapan

Untuk mencari padanan bertindih, penegasan pandang ke hadapan boleh digunakan. Penegasan pandang ke hadapan, dilambangkan dengan (?=...), mengesahkan sama ada corak tertentu wujud seterusnya tanpa menggunakan rentetan input.

Menggunakan konsep ini, ungkapan berikut berjaya menangkap padanan bertindih dan tidak bertindih:

>>> re.findall(r'(?=(\w\w))', 'hello')
['he', 'el', 'll', 'lo']
Salin selepas log masuk

Coraknya kini berbunyi: "cari mana-mana lokasi di mana perkataan dua aksara mengikut." Ini memastikan semua jujukan padanan yang mungkin, termasuk urutan bertindih dan tidak bertindih, ditangkap.

Atas ialah kandungan terperinci Bagaimanakah `re.findall()` Mengendalikan Padanan Bertindih 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan