Đối tượng Match
Đối tượng Match là một đối tượng chứa
thông tin về các kết quả khớp với biểu thức chính quy
trong chuỗi. Có thể nhận được đối tượng Match
bằng cách áp dụng các phương thức sau: fullmatch,
match,
search.
Có thể trích xuất thông tin từ đối tượng match bằng các phương thức chính.
Các phương thức chính áp dụng cho đối tượng match
| Phương thức | Mục đích |
|---|---|
group |
Trả về nhóm số không (toàn bộ kết quả khớp). |
groups |
Trả về một tuple chứa các nhóm bắt giữ. |
groupdict |
Trả về một từ điển chứa các nhóm có tên. |
span |
Trả về chỉ số bắt đầu và chỉ số kết thúc của một nhóm cụ thể. |
start |
Trả về chỉ số bắt đầu của một nhóm cụ thể. |
end |
Trả về chỉ số kết thúc của một nhóm cụ thể. |
Ví dụ . Đối tượng Match không có phương thức
Hãy áp dụng phương thức match vào
chuỗi của chúng ta:
txt = '123 456 789'
res = re.match('\d+', txt)
print(res)
Kết quả thực thi mã:
<re.Match object; span=(0, 3), match='123'>
Ví dụ . Phương thức group
Bây giờ hãy in ra nhóm số không (toàn bộ kết quả khớp)
từ đối tượng Match bằng phương thức group:
txt = '123 456 789'
res = re.match('\d+', txt)
print(res.group())
Kết quả thực thi mã:
'123'
Ví dụ . Phương thức groups
Hãy áp dụng phương thức groups vào đối tượng
đã nhận được để in ra tuple các nhóm bắt giữ:
txt = '123 456 789'
res = re.match('(\d)(\d)', txt)
print(res.groups())
Kết quả thực thi mã:
('1', '2')
Ví dụ . Phương thức groupdict
Để in ra từ điển các nhóm có tên,
có thể áp dụng phương thức groupdict:
res = re.match('(?P<test1>\d)(?P<test2>\d)', txt)
print(res.groupdict())
Kết quả thực thi mã:
{'test1': '1', 'test2': '2'}
Ví dụ . Phương thức span
Hãy in ra tuple gồm chỉ số bắt đầu và
chỉ số kết thúc của một nhóm. Để
làm điều này, chúng ta sử dụng phương thức span:
res = re.match('\d+', txt)
print(res.span())
Sau khi thực thi mã, bạn sẽ thấy một tuple, bao gồm hai chỉ số. Nhưng hãy lưu ý rằng giá trị cuối cùng lớn hơn một so với chỉ số kết thúc:
(0, 3)
Ví dụ . Các phương thức start và end
Để trả về từng chỉ số riêng biệt,
có thể áp dụng các phương thức start
và end:
res = re.match('\d+', txt)
print(res.start())
print(res.end())
Kết quả thực thi mã:
0
3