Dấu ngoặc nhóm trong biểu thức chính quy Python
Trong các ví dụ trước, các toán tử lặp chỉ tác động lên một ký tự đứng ngay trước chúng. Phải làm gì nếu cần tác động chúng lên nhiều ký tự?
Để làm điều này, tồn tại các dấu ngoặc nhóm
'(' và . Chúng hoạt động như sau:
nếu một cái gì đó nằm trong dấu ngoặc nhóm
và ngay sau ')'')' là một toán tử
lặp - nó sẽ tác động lên tất cả những gì
nằm bên trong dấu ngoặc.
Trong ví dụ tiếp theo, mẫu tìm kiếm trông
như thế này: chữ cái 'x', tiếp theo là chuỗi
'ab' một hoặc nhiều lần, sau đó là chữ cái
'x':
txt = 'xabx xababx xaabbx'
res = re.sub('x(ab)+x', '!', txt)
print(res)
Kết quả thực thi mã:
'! ! xaabbx'
Cho một chuỗi:
txt = 'ab abab abab abababab abea'
Hãy viết biểu thức chính quy tìm các chuỗi
theo mẫu: chuỗi 'ab' được lặp lại
1 lần hoặc nhiều hơn.