Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana Mencari Semua Padanan Bertindih Menggunakan Python Regex?

Bagaimana Mencari Semua Padanan Bertindih Menggunakan Python Regex?

Susan Sarandon
Lepaskan: 2024-12-16 03:57:15
asal
489 orang telah melayarinya

How to Find All Overlapping Matches Using Python Regex?

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]
Salin selepas log masuk

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]
Salin selepas log masuk

hasil output mengembalikan senarai padanan bertindih yang dikehendaki:

[1234567891,
 2345678912,
 3456789123,
 4567891234,
 5678912345,
 6789123456,
 7891234567,
 8912345678,
 9123456789]
Salin selepas log masuk

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!

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