Tôi muốn nó để phù hợp:Làm thế nào tôi có thể viết regex "Tất cả các ký tự đều giống nhau"?
aaaaaa
bb
c
nhưng không:
aaabaaa
cd
...
Tôi muốn nó để phù hợp:Làm thế nào tôi có thể viết regex "Tất cả các ký tự đều giống nhau"?
aaaaaa
bb
c
nhưng không:
aaabaaa
cd
...
Giả sử động cơ regex hỗ trợ back-tài liệu tham khảo,
^(.)\1*$
Trong Java nó sẽ là
theString.matches("(.)\\1*")
Sử dụng lại tài liệu tham khảo:
(.)(\1)*
đọc: phù hợp với bất kỳ ký tự sau bởi cùng một ký tự 0 hoặc nhiều lần.
Tùy thuộc vào công cụ regexp và nhu cầu của bạn, bạn có thể muốn neo regex để chỉ khớp với toàn bộ chuỗi chứ không phải chuỗi.
Đang thử Java, nhưng System.out.println ("1111111" .matches ("(.) (\ 1) *")); in false –
@Julio: Bạn cần phải thoát kép trong java, tức là sử dụng '\\ 1' thay vì' \ 1'. – sepp2k
Tuyệt vời, cảm ơn rất nhiều –
Nếu bạn muốn chụp những gì bạn kết hợp, nó là ^((.)\2*)$
Chỉ để đóng góp cho câu hỏi này, bạn có thể sử dụng BackRefence:
(\ w +) \ s + \ 1
Kiểm tra các từ lặp lại được phân tách bằng khoảng trắng.
Đang thử java, nhưng System.out.println ("1111111" .matches ("^ (.) \ 1 * $")); in sai. –
@Julio: Hãy thử '"^(.) \\ 1 * $ "', với 2 dấu gạch chéo ngược. – kennytm
đã làm điều đó, cảm ơn rất nhiều! –