我想验证一个应该只有数字并且长度应该是 11 并且不应该以 129 开头的值。
这可能是因为我在正则表达式中效率不高吗?
使用负前瞻。正则表达式应该是^(?!129)\d{11}$
把它变成 Java 模式;逃避反斜杠。
您可以使用
String num_regex = "^(?!129)\\b[0-9]{11}\\b";
String testString= "12345678910";
Boolean b = testString.matches(num_regex);
System.out.println("String: " + testString + " :Valid = " + b);
testString= "12945678910";
b = testString.matches(num_regex);
System.out.println("String: " + testString + " :Valid = " + b);
输出:
String: 12345678910 :Valid = true
String: 12945678910 :Valid = false