Tôi dường như không thể tìm cách trích xuất tất cả các nhận xét như trong ví dụ sau.Kết hợp Regex giữa hai chuỗi?
>>> import re
>>> string = '''
... <!-- one
... -->
... <!-- two -- -- -->
... <!-- three -->
... '''
>>> m = re.findall ('<!--([^\(-->)]+)-->', string, re.MULTILINE)
>>> m
[' one \n', ' three ']
khối với two -- --
không khớp với nhiều khả năng vì regex xấu. Ai đó có thể xin vui lòng chỉ cho tôi đúng hướng làm thế nào để trích xuất các trận đấu giữa hai dây.
Xin chào, tôi đã thử nghiệm những gì các bạn đề xuất trong nhận xét .... đây là giải pháp làm việc với ít nâng cấp.
>>> m = re.findall ('<!--(.*?)-->', string, re.MULTILINE)
>>> m
[' two -- -- ', ' three ']
>>> m = re.findall ('<!--(.*\n?)-->', string, re.MULTILINE)
>>> m
[' one \n', ' two -- -- ', ' three ']
cảm ơn!
mọi thứ giữa [] là ký tự đơn (->) sẽ không tìm kiếm nhóm đó là một phần của sự cố ... –
're.findall ('', string, re.DOTALL)' nên làm. Bạn không cần '^ \ (->)' ở đây, bởi vì dấu hỏi làm cho nó không tham lam. – BrtH
Bạn trông giống như bạn đang tìm kiếm chỉ là những từ? Nếu vậy, có gì sai với 'm = re.findall ('[\ w] +', chuỗi, re.MULTILINE)'? Ngoài ra, chuỗi là một tên thực sự xấu cho một, um, chuỗi. – Ben