繁体   English   中英

如何为 AAAABBB 和 AAABBCC 等数字模式创建正则表达式模式

[英]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

例如: 5555333777799922255881113377等。我想使用 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM