3 hoặc nhiều ký tự liên tiếp liên tiếp/số cũ - 123, abc, 789, pqr et c.
Không thể với biểu thức chính quy.
3 hoặc nhiều ký tự/số giống nhau liên tiếp cũ hơn - 111, aaa, bbb. 222 vv
Sử dụng số pattern của (?i)(?:([a-z0-9])\\1{2,})*
.
Nếu bạn muốn kiểm tra toàn bộ chuỗi, hãy sử dụng Matcher.matches()
. Để tìm các kết quả phù hợp trong chuỗi, hãy sử dụng Matcher.find()
.
Dưới đây là một số mẫu mã:
final String ps = "(?i)(?:([a-z0-9])\\1{2,})*";
final String psLong =
"(?i)\t\t\t# Case insensitive flag\n"
+ "(?:\t\t\t\t# Begin non-capturing group\n"
+ " (\t\t\t\t# Begin capturing group\n"
+ " [a-z0-9]\t\t# Match an alpha or digit character\n"
+ ")\t\t\t\t# End capturing group\n"
+ " \\1\t\t\t\t# Back-reference first capturing group\n"
+ " {2,}\t\t\t# Match previous atom 2 or more times\n"
+ ")\t\t\t\t# End non-capturing group\n"
+ "*\t\t\t\t# Match previous atom zero or more characters\n";
System.out.println("***** PATTERN *****\n" + ps + "\n" + psLong
+ "\n");
final Pattern p = Pattern.compile(ps);
for (final String s : new String[] {"aa", "11", "aaa", "111",
"aaaaaaaaa", "111111111", "aaa111bbb222ccc333",
"aaaaaa111111bbb222"})
{
final Matcher m = p.matcher(s);
if (m.matches()) {
System.out.println("Success: " + s);
} else {
System.out.println("Fail: " + s);
}
}
Và kết quả là:
***** PATTERN *****
(?i)(?:([a-z0-9])\1{2,})*
(?i) # Case insensitive flag
(?: # Begin non-capturing group
( # Begin capturing group
[a-z0-9] # Match an alpha or digit character
) # End capturing group
\1 # Back-reference first capturing group
{2,} # Match previous atom 2 or more times
) # End non-capturing group
* # Match previous atom zero or more characters
Fail: aa
Fail: 11
Success: aaa
Success: 111
Success: aaaaaaaaa
Success: 111111111
Success: aaa111bbb222ccc333
Success: aaaaaa111111bbb222
Nguồn
2012-01-17 13:43:02
http://stackoverflow.com/questions/22931991/regex-for-consecutive-numbers?lq=1 lưu ý rằng nó thực sự có thể phù hợp với độ dài tùy ý của các ký tự tuần tự trong một chuỗi, miễn là bạn xác định các quy tắc cho các ký tự theo đó. – mbomb007