Có cách nào để kết hợp các nhóm và các tính năng * của các cụm từ thông dụng để hoạt động giống như một trình mã thông báo/bộ tách. Tôi cố gắng này:Các nhóm Regex và * ký tự đại diện có hoạt động cùng nhau không?
my_str = "foofoofoofoo"
pattern = "(foo)*"
result = re.search(pattern, my_str)
Tôi đã hy vọng nhóm của tôi có thể trông giống như
("foo", "foo", "foo", "foo")
Nhưng nó không. Tôi đã ngạc nhiên bởi điều này bởi vì? và các tính năng của nhóm hoạt động cùng nhau:
my_str= "Mr foo"
pattern = "(Mr)? foo"
result = re.search(pattern, my_str)
tôi nghi ngờ rằng sẽ làm việc, nhưng bạn có thể có được những gì bạn muốn sử dụng 're.findall (" foo "," foofoofoofoo ")'. Oh, và xin vui lòng không sử dụng 'str' như một tên biến. –
Tôi đã thay đổi 'str' thành' my_str' vì 'str' shadows được tích hợp sẵn. – jamylak
ha vâng xin lỗi, str chỉ là một ví dụ. Mã đó có lẽ không phải là cú pháp chính xác. Ngoài ra, tôi đã thấy phương pháp findall và điều đó chắc chắn sẽ hoạt động. Tôi chỉ tò mò một cách tổng quát hơn. –