Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah saya boleh mencari semua kejadian subrentetan dalam Python?

Bagaimanakah saya boleh mencari semua kejadian subrentetan dalam Python?

Patricia Arquette
Lepaskan: 2024-12-12 21:58:10
asal
929 orang telah melayarinya

How Can I Find All Occurrences of a Substring in Python?

Mencari Semua Kejadian Subrentetan dalam Python

Dalam Python, anda boleh menggunakan string.find() dan string.rfind() kaedah untuk mendapatkan semula indeks subrentetan dalam rentetan yang lebih besar. Walau bagaimanapun, tiada fungsi terbina dalam yang direka khusus untuk mengembalikan semua kejadian subrentetan.

Menggunakan Ungkapan Biasa

Pendekatan yang lebih berkuasa untuk mencari berbilang subrentetan kejadian adalah menggunakan ungkapan biasa:

import re

# Sample string
string = "test test test test"

# Find all occurrences of "test"
matches = [m.start() for m in re.finditer('test', string)]
print(matches)  # Output: [0, 5, 10, 15]
Salin selepas log masuk

re.finditer menjana penjana yang menghasilkan padanan individu objek. Setiap objek padanan menyediakan indeks permulaan subrentetan yang sepadan.

Mempertimbangkan Padanan Bertindih

Secara lalai, pencari semula mencari padanan yang tidak bertindih. Untuk mencari padanan bertindih, gunakan pandangan positif:

matches = [m.start() for m in re.finditer('(?=tt)', 'ttt')]
print(matches)  # Output: [0, 1]
Salin selepas log masuk

Ungkapan (?=tt) menegaskan bahawa subrentetan "tt" muncul pada kedudukan semasa tetapi tidak menggunakannya.

Reverse Find-All Tanpa Tindih

Untuk melakukan reverse find-all tanpa bertindih padan, gabungkan pandangan positif dan negatif:

search = 'tt'
matches = [m.start() for m in re.finditer('(?=%s)(?!.{1,%d}%s)' % (search, len(search)-1, search), 'ttt')]
print(matches)  # Output: [1]
Salin selepas log masuk

Ungkapan ini memastikan bahawa "tt" muncul serta-merta selepas kursor tetapi tidak dalam julat lihat belakang tertentu (len(search)-1) dalam arah songsang.

Atas ialah kandungan terperinci Bagaimanakah saya boleh mencari semua kejadian subrentetan dalam Python?. 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