[英]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: ([0-9])
斷言不可能匹配剛剛匹配的相同數字的任意長度(> 1)的字符串,然后是字符串的結尾: (?!\\1+$)
然后匹配任何數字字符串,直到字符串結尾: [0-9]+$
編輯:當然,在Java中你需要轉義字符串( "\\\\"
)中的反斜杠。
根據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.