簡體   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