簡體   English   中英

檢查字符串是否僅包含數字且使用REGEX的數字是否相同?

[英]Check if a String only contains digits and the digits are not the same using REGEX?

111111111 - Invalid
A121278237 - Invalid
7777777777 - Invalid

121263263 - Valid
111111112 - Valid
^([0-9])(?!\1+$)[0-9]+$

應該管用。 它需要一個至少兩位數的字符串才能成功匹配。

說明:

  1. 匹配一個數字並將其捕獲到反向引用#1: ([0-9])

  2. 斷言不可能匹配剛剛匹配的相同數字的任意長度(> 1)的字符串,然后是字符串的結尾: (?!\\1+$)

  3. 然后匹配任何數字字符串,直到字符串結尾: [0-9]+$

編輯:當然,在Java中你需要轉義字符串( "\\\\" )中的反斜杠。

  1. 取一個[0-9]正則表達式並丟棄不僅包含數字的字符串。
  2. 取第一個字符,並將其用作正則表達式[C] +,以查看該字符串是否包含任何其他數字。

根據Tim的回答,您可以通過添加or子句來消除“至少兩位數”的要求。

^([0-9])(?!\1+$)[0-9]+$|^[0-9]$

例如:

String regex = "^([0-9])(?!\\1+$)[0-9]+$|^[0-9]$";
boolean a = "12".matches(regex);
System.out.println("a: " + a);
boolean b = "11".matches(regex);
System.out.println("b: " + b);
boolean c = "1".matches(regex);
System.out.println("c: " + c);

回報

a: true
b: false
c: true

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM