-3

我想验证一个应该只有数字并且长度应该是 11 并且不应该以 129 开头的值。

这可能是因为我在正则表达式中效率不高吗?

4

2 回答 2

5

使用负前瞻。正则表达式应该是^(?!129)\d{11}$ 把它变成 Java 模式;逃避反斜杠。

于 2013-05-10T10:30:57.483 回答
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
于 2013-05-10T10:35:24.117 回答