[英]How to create regex pattern for Number Patterns like AAAABBB and AAABBCC
如何為 AAAABBB 和 AAABBCC 等數字模式創建正則表達式模式。 第一組匹配的數字不應在第二組及以后的組中考慮。
Here:
A = [0-9] Any number between 0 to 9
B = [0-9] Any number between 0 to 9 excluding A
C = [0-9] Any number between 0 to 9 excluding A and B
例如: 5555333
、 7777999
、 2225588
、 1113377
等。我想使用 java 正則表達式從更大的數字范圍中找到這些數字。
我相信這可以滿足您的要求。 它捕獲所需的數字,后跟 0 個或多個相同的數字,而不是在否定前瞻斷言中使用反向引用的任何先前數字。
String pat = "(\\d)\\1*(?:(\\d)\\2*(?!\\1)){1,2}";
long[] data = {112233, 123333, 888777555, 999666, 222111222,222222, 111122221, 11223344,44442222,444455522, 522212121};
for (long i : data) {
String s = Long.toString(i);
System.out.printf("%12s - %s%n", s, s.matches(pat) ? "Valid" : "Invalid");
}
印刷
112233 - Valid
123333 - Valid
888777555 - Valid
999666 - Valid
222111222 - Invalid
222222 - Valid
111122221 - Invalid
11223344 - Invalid
44442222 - Valid
444455522 - Valid
522212121 - Invalid
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.