import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class MatchPhoneNumbers {
public static void main(String[] args) {
String sPhoneNumber = "5568889999";
// String sPhoneNumber = "605-88899991";
// String sPhoneNumber = "605-888999A";
Pattern pattern = Pattern.compile("^(?![5][5][5]).*$&\\d([2-9]{9})");
// Pattern pattern = Pattern.compile("^[^555]\\d{7}|\\d([2-9]{9})");
// ^[^0-9]+$
Matcher matcher = pattern.matcher(sPhoneNumber);
if (matcher.matches()) {
System.out.println("Phone Number Valid");
} else {
System.out.println("Phone Number must be in the form XXXXXXXXXX");
}
}
}
我想要在输入556时返回有效的电话号码,如果前3位数字是555,则返回false。 另外,我不希望第一个数字为0或1 我如何实现这一目标?
答案 0 :(得分:0)
要匹配您的数字格式,您可以使用:
在Java中:
^(?![01]|555)\\d{10}$
那将匹配:
^
字符串的开头(?!
断言后面的否定前瞻不是
[01]
匹配0或1 |
或555
按字面意思匹配)
关闭否定前瞻\d{10}
匹配10位数字$
字符串的结尾