Mencari Padanan Bertindih Menggunakan Regex dalam Python
Dalam operasi carian, selalunya perlu untuk mengenal pasti dan mendapatkan semula kejadian berbilang corak tertentu dalam teks yang lebih besar. Apabila padanan bertindih, teknik padanan regex standard mungkin terlepas beberapa keadaan. Soalan ini meneroka cara mencari semua padanan bertindih menggunakan ungkapan biasa Python.
Matlamatnya ialah untuk mengekstrak setiap set 10 digit nombor dalam jujukan nombor tertentu. Sebagai contoh, dalam rentetan "123456789123456789," kami berhasrat untuk mendapatkan:
[1234567891,2345678912,3456789123,4567891234,5678912345,6789123456,7891234567,8912345678,9123456789]
Menangkap Kumpulan dan Pandangan
Untuk mencapai matlamat ini, kami menggunakan kumpulan penangkap dalam pandangan ke hadapan. Pandangan hadapan mengenal pasti teks yang diminati (di sini, nombor 10 digit), tetapi padanan sebenar ialah subrentetan lebar sifar sebelum pandangan hadapan. Ini mengakibatkan padanan tidak bertindih.
Pelaksanaan
Dengan menggunakan kaedah pencari, kita boleh mendapatkan padanan seperti berikut:
import re s = "123456789123456789" matches = re.finditer(r'(?=(\d{10}))', s) results = [int(match.group(1)) for match in matches]
hasil output mengembalikan senarai padanan bertindih yang dikehendaki:
[1234567891, 2345678912, 3456789123, 4567891234, 5678912345, 6789123456, 7891234567, 8912345678, 9123456789]
Pendekatan ini dengan cekap mengekstrak semua kejadian bertindih bagi corak yang ditentukan, menyediakan teknik yang berharga untuk pemprosesan teks yang komprehensif.
Atas ialah kandungan terperinci Bagaimana Mencari Semua Padanan Bertindih Menggunakan Python Regex?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!