Menu
CoddyTech

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.

challenge icon

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 ở đây

Tấ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