Nhóm bắt (Groups) trong phương thức search của Python
Khi tìm kiếm kết quả khớp, thường rất tiện lợi để tách chuỗi con thành cái gọi là nhóm bắt (capturing groups). Chúng đại diện cho một cách để chia phần tìm được thành các phần riêng biệt. Để sử dụng chúng, cần đặt một phần của biểu thức chính quy trong dấu ngoặc tròn.
Hãy thử thực hành. Giả sử chúng ta có chuỗi sau:
txt = '123 456'
Hãy tách các chuỗi con chứa số vào các nhóm bắt. Để làm điều này, hãy viết biểu thức chính quy sau:
res = re.search('(\d+) (\d+)', txt)
Kết quả, chúng ta sẽ nhận được một đối tượng match. Trong
phần tử có chỉ số 1 sẽ
chứa nhóm bắt đầu tiên, trong phần tử có chỉ số
2 - nhóm bắt thứ hai, và trong phần tử có
chỉ số 0 - toàn bộ phần tìm được (còn gọi là
nhóm bắt số không):
print(res[0]) # '123 456' - phần tìm được
print(res[1]) # '123' - nhóm bắt 1
print(res[2]) # '456' - nhóm bắt 2
Cho một chuỗi chứa tên miền:
txt = 'sss domain.ru zzz'
Hãy tìm tên miền này và đặt tên của nó vào nhóm bắt thứ nhất, còn phần mở rộng (zone) - vào nhóm thứ hai.
Cho một chuỗi chứa ngày tháng:
txt = '31.12.2025'
Hãy đặt ngày vào nhóm bắt thứ nhất, tháng - vào nhóm thứ hai, còn năm - vào nhóm thứ ba.