Computer >> Máy Tính >  >> Lập trình >> Python

Sự khác biệt giữa các phương thức re.findall () và re.finditer () có sẵn trong Python là gì?

Phương thức re.findall ()

Re.findall () giúp lấy danh sách tất cả các mẫu phù hợp. Nó tìm kiếm từ đầu hoặc cuối của chuỗi nhất định. Nếu chúng ta sử dụng phương thức findall để tìm kiếm một mẫu trong một chuỗi đã cho, nó sẽ trả về tất cả các lần xuất hiện của mẫu đó. Trong khi tìm kiếm một mẫu, bạn nên sử dụng re.findall () luôn, nó hoạt động giống như re.search () và re.match () cả hai.

Ví dụ

import re result = re.search(r'TP', 'TP Tutorials Point TP')

print result.group()

Đầu ra

TP

Phương thức re.finditer ()

re.finditer (mẫu, chuỗi, cờ =0)

Trả về một trình lặp mang lại các cá thể MatchObject trên tất cả các đối sánh không chồng chéo cho mẫu RE trong chuỗi. Chuỗi được quét từ trái sang phải và các kết quả phù hợp được trả về theo thứ tự được tìm thấy. Các trận đấu trống được bao gồm trong kết quả.

Đoạn mã sau cho thấy việc sử dụng phương thức re.finditer () trong Python regex

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)

Đầu ra

Strings match "Blue Berries" at 0:12