Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Cách dùng phương thức re.finditer() trong regex Python?


Theo tài liệu Python:

re.finditer(pattern, string, flags=0)

Trả về iterator sinh ra các đối tượng MatchObject cho tất cả các khớp không chồng chéo (non-overlapping) của pattern trong string. Chuỗi được quét từ trái sang phải, các match trả về theo thứ tự tìm thấy. Các khớp rỗng (empty matches) cũng được bao gồm.

Ví dụ

import re
s1 = 'Blue Berries'
pattern = 'Blue Berries'
for match in re.finditer(pattern, s1):
    s = match.start()
    e = match.end()
    print('String match "%s" at %d:%d' % (s1[s:e], s, e))

Kết quả

String match "Blue Berries" at 0:12

Ứng dụng thực tế: finditer() hữu ích khi cần xử lý từng match riêng biệt (thay thế, trích xuất vị trí, phân tích ngữ cảnh) thay vì chỉ lấy danh sách chuỗi như findall().