Dấu ngoặc nhọn trong biểu thức chính quy Python

Các toán tử '+', '*', '?' rất tốt, tuy nhiên, chúng không thể chỉ định một số lần lặp cụ thể. Trong trường hợp này, toán tử {} sẽ giúp bạn.

Nó hoạt động như sau: {5} - năm lần lặp, {2,5} – lặp lại từ hai đến năm lần (bao gồm cả hai), {2,} - lặp lại hai lần trở lên. Hãy xem các ví dụ:

Ví dụ

Trong ví dụ này, mẫu tìm kiếm trông như sau: chữ cái 'x', chữ cái 'a' một hoặc hai lần, chữ cái 'x':

pythontxt = 'xx xax xaax xaaax'
res = re.sub('xa{1,2}x', '!', txt)

print(res)

Kết quả thực thi mã:

python'xx ! ! xaaax'

Ví dụ

Trong ví dụ này, mẫu tìm kiếm trông như sau: chữ cái 'x', chữ cái 'a' hai lần trở lên, chữ cái 'x':

pythontxt = 'xx xax xaax xaaax'
res = re.sub('xa{2,}x', '!', txt)

print(res)

Kết quả thực thi mã:

python'xx xax ! !'

Ví dụ

Trong ví dụ này, mẫu tìm kiếm trông như sau: chữ cái 'x', chữ cái 'a' ba lần, chữ cái 'x':

pythontxt = 'xx xax xaax xaaax'
res = re.sub('xa{3}x', '!', txt)

print(res)

Kết quả thực thi mã:

python'xx xax xaax !'

Ví dụ

Trong ví dụ này, mẫu tìm kiếm trông như sau: chữ cái 'a' mười lần:

pythontxt = 'aaa aaaaaaaaaa aaa'
res = re.sub('a{10}', '!', txt)

print(res)

Kết quả thực thi mã:

python'aaa ! aaa'

Ví dụ

Trong ví dụ này có mẫu như sau: chữ cái 'x', chữ cái 'a' ba lần trở xuống, chữ cái 'x'. Để thực hiện nó, trước số 3 có thể không chỉ định số, mà chỉ cần đặt dấu phẩy:

pythontxt = 'xx xax xaax xaaax'
res = re.sub('xa{,3}x', '!', txt)

print(res)

Kết quả thực thi mã:

python'! ! ! !'

Ví dụ

Số không trước 3 cũng được chấp nhận:

pythontxt = 'xx xax xaax xaaax'
res = re.sub('xa{0,3}x', '!', txt)

print(res)

Kết quả thực thi mã:

python'! ! ! !'

Bài tập thực hành

Задание 1

Cho chuỗi:

pythontxt = 'aa aba abba abbba abbbba abbbbba'

Viết biểu thức chính quy tìm các chuỗi 'abba', 'abbba', 'abbbba' và chỉ chúng.

Задание 2

Cho chuỗi:

pythontxt = 'aa aba abba abbba abbbba abbbbba'

Viết biểu thức chính quy tìm các chuỗi dạng 'aba', trong đó 'b' xuất hiện ít hơn 3 lần (bao gồm).

Задание 3

Cho chuỗi:

pythontxt = 'aa aba abba abbba abbbba abbbbba'

Viết biểu thức chính quy tìm các chuỗi dạng 'aba', trong đó 'b' xuất hiện nhiều hơn 4 lần (bao gồm).