2010-07-15 32 views

Trả lời

18

Giả sử động cơ regex hỗ trợ back-tài liệu tham khảo,

^(.)\1*$ 

Trong Java nó sẽ là

theString.matches("(.)\\1*") 
+0

Đang thử java, nhưng System.out.println ("1111111" .matches ("^ (.) \ 1 * $")); in sai. –

+5

@Julio: Hãy thử '"^(.) \\ 1 * $ "', với 2 dấu gạch chéo ngược. – kennytm

+0

đã làm điều đó, cảm ơn rất nhiều! –

8

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.

+0

Đang thử Java, nhưng System.out.println ("1111111" .matches ("(.) (\ 1) *")); in false –

+1

@Julio: Bạn cần phải thoát kép trong java, tức là sử dụng '\\ 1' thay vì' \ 1'. – sepp2k

+0

Tuyệt vời, cảm ơn rất nhiều –

0

Nếu bạn muốn chụp những gì bạn kết hợp, nó là ^((.)\2*)$

0

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.

Các vấn đề liên quan