Phương thức finditer trong biểu thức chính quy Python
Phương thức finditer được thiết kế để
lấy một iterator của tất cả các kết quả khớp với
biểu thức chính quy trong chuỗi. Tham số đầu tiên
của phương thức là biểu thức chính quy cần tìm,
tham số thứ hai - chuỗi để tìm kiếm. Phương thức kiểm tra tất cả các kết quả khớp,
tìm chúng từ trái sang phải. Phương thức trả về
một iterator của các đối tượng khớp (match). Cú pháp
phương thức finditer trông như sau:
re.finditer(what to search, where to search)
Hãy tìm tất cả các chuỗi con chứa chữ số trong chuỗi của chúng ta:
txt = 'aaaa 123 bbbb 456'
print(re.finditer('\d+', txt))
Kết quả thực thi mã:
<callable_iterator object at 0x000002AA891300A0>
Bây giờ hãy khai báo một biến res,
giá trị của nó là đối tượng chúng ta nhận được
trong ví dụ trước. Sau đó lặp qua nó bằng vòng lặp:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
for el in res:
print(el)
Sau khi thực thi mã, hai đối tượng match sẽ được in ra:
<re.Match object; span=(5, 8), match='123'>
<re.Match object; span=(14, 17), match='456'>
Các đối tượng này chứa thông tin về tất cả các kết quả khớp với biểu thức chính quy dưới dạng tuple. Có thể xuất các kết quả khớp từ chúng theo chỉ mục:
for el in res:
print(el[0])
Kết quả thực thi mã:
'123'
'456'
Cho một chuỗi:
txt = '12 aaa 34 bbb 56 ccc'
Hãy xuất tất cả các số từ chuỗi đó bằng vòng lặp.