我想验证一个值,该值应仅包含数字,长度应为11,不应以129开头。
这是可能的,因为我在正则表达式中效率不高吗?
答案 0 :(得分:5)
使用否定前瞻。正则表达式应为^(?!129)\d{11}$
将其转换为Java模式;逃避反斜杠。
答案 1 :(得分:0)
您可以使用
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