Bagaimana saya bisa mendapatkan posisi awal dan akhir dari semua pertandingan menggunakan re
modul? Misalnya diberikan pola r'[a-z]'
dan string 'a1b2c3d4'
saya ingin mendapatkan posisi di mana ia menemukan setiap huruf. Idealnya, saya juga ingin mendapatkan teks pertandingan kembali.
112
Jawaban:
sumber
start()
dapat menerima nomor grup, jadi jika Anda ingin indeks grup ke-n, gunakanstart(n)
Diambil dari
Ekspresi Reguler HOWTO
Gabungkan itu dengan:
Di Python 2.2, metode finditer () juga tersedia, mengembalikan urutan instance MatchObject sebagai iterator.
Anda harus dapat melakukan sesuatu dengan urutan
sumber
re.search(r'abbit', "has abbit of carrot").span(0)
-(4, 9)
span()
adalah seperti 'stop' dalam notasi potongan Python yang naik ke atas tetapi tidak menyertakan indeks itu; lihat disini .Untuk Python 3.x
Anda akan mendapatkan
\n
tupel terpisah (masing-masing terdiri dari indeks pertama dan terakhir dari pertandingan) dan pertandingan itu sendiri, untuk setiap pukulan dalam string.sumber
perhatikan bahwa span & group diindeks untuk multi capture group dalam regex
sumber
4
asalnya