Bộ định lượng
Bài học 14 trên 28 trong khóa học Biểu thức chính quy trong Python của Coddy.
Bộ định lượng cho phép bạn chỉ định một ký tự hoặc một nhóm ký tự có thể lặp lại bao nhiêu lần trong mẫu regex. Các bộ định lượng được dùng phổ biến nhất là *, + và ?.
<strong>*</strong>: Khớp với 0 hoặc nhiều lần lặp lại của phần tử đứng trước.<strong>+</strong>: Khớp với 1 hoặc nhiều lần lặp lại của phần tử đứng trước.<strong>?</strong>: Khớp với 0 hoặc 1 lần lặp lại của phần tử đứng trước.
import re
text = "The rain in Spain stays mainly in the plain."
pattern_star = r"Sp.*n"
pattern_plus = r"Sp.+n"
pattern_question = r"Sp.?n"
matches_star = re.findall(pattern_star, text)
matches_plus = re.findall(pattern_plus, text)
matches_question = re.findall(pattern_question, text)
print("Matches for '*':", matches_star) # Đầu ra: ['Spain stays mainly in the plain']
print("Matches for '+':", matches_plus) # Đầu ra: ['Spain stays mainly in the plain']
print("Matches for '?':", matches_question) # Đầu ra: ['Span']Trong ví dụ trên, mẫu Sp.*n khớp với "Spain stays mainly in the plain" vì .* khớp với bất kỳ ký tự nào (ngoại trừ ký tự xuống dòng) 0 hoặc nhiều lần. Mẫu Sp.+n khớp với "Spain stays mainly in the plain" vì .+ khớp với bất kỳ ký tự nào 1 hoặc nhiều lần. Mẫu Sp.?n khớp với "Span" vì .? khớp với bất kỳ ký tự nào 0 hoặc 1 lần.
Thử thách
DễViết một hàm tên là find_repeated_words, nhận một chuỗi văn bản làm đầu vào và trả về danh sách các từ chứa chữ cái "a" lặp lại 0 lần trở lên.
Tự làm thử
import re
def find_repeated_words(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