Giả sử Notepad ++ phiên bản 6+ (sử dụng thư viện Biểu thức chính quy tương thích Perl PCRE) và '. phù hợp với newline 'hộp không được chọn trong cửa sổ Find:
(.*?,){11,}
Nếu một dòng chứa hơn 10 dấu phẩy, điều này sẽ phù hợp với từ đầu dòng để dấu phẩy cuối cùng.
(.*?,)
khớp với bất kỳ ký tự nào ngoài dòng mới càng ít lần càng tốt cho đến khi ký tự tiếp theo là dấu phẩy; {11,}
có nghĩa là từ 11 lần trở lên.
Nếu bạn muốn regex hoạt động bất kể '. phù hợp với newline 'hộp được đánh dấu, bạn có thể sử dụng:
([^\n]*?,){11,}
regex của bạn không hoạt động nếu' . khớp với dòng mới 'không được chọn, nhưng vì nó khớp với bất kỳ ký tự nào tham lam, có thể có một số lượng lớn các kết quả tiềm năng mà nó có thể xuất hiện treo ứng dụng. Thêm ?
sau .*
để ký tự đại diện khớp với lazily hoặc miễn cưỡng, tức là ít nhất có thể, sẽ giải quyết được sự cố.
PCRE man pages
Perl Regular Expressions documentation - được khuyến nghị.
Notepad++ "outdated" regular expressions tutorial
Bạn có thể làm rõ ý của mình bằng cách "không hoạt động" không? Regex của bạn nên tìm các dòng với hơn 10 dấu phẩy, ngay cả khi nó đi về kinh doanh của nó một cách rất phức tạp. –