Bắt nhóm
Bài học 17 trên 28 trong khóa học Biểu thức chính quy trong Python của Coddy.
Nhóm bắt (capturing group) không chỉ nhóm các phần của mẫu mà còn ghi lại văn bản khớp. Bạn có thể tham chiếu các nhóm đã bắt này ở phần sau của mẫu hoặc dùng chúng trong chuỗi thay thế.
import re
text = "abab abab abab"
pattern = r"(ab)\1"
matches = re.findall(pattern, text)
print(matches) # Đầu ra: ['ab', 'ab']Trong ví dụ trên, mẫu (ab)\1 bắt nhóm "ab", rồi tìm nhóm giống hệt ngay sau đó. \1 là tham chiếu ngược (backreference) đến nhóm bắt đầu tiên.
Một ví dụ khác:
import re
text = "My email is example@example.com and my backup is backup@example.com."
pattern = r"(\w+)@example\.com"
matches = re.findall(pattern, text)
print(matches) # Đầu ra: ['example', 'backup']Trong ví dụ trên, mẫu (\w+)@example\.com bắt phần địa chỉ email nằm trước @example.com.
Thử thách
DễViết một hàm tên là find_repeated_patterns, nhận một chuỗi văn bản làm đầu vào và trả về danh sách các mẫu lặp lại gồm hai ký tự.
Tự làm thử
import re
def find_repeated_patterns(text):
# Viết code ở đâyTất cả bài học trong Biểu thức chính quy trong Python
Tự luyện tập: Trình biên dịch Python online
Thử một mẫu trên văn bản của bạn: Công cụ kiểm tra regex