我有一个如下所示的字符串
String phone = (123) 456-7890
现在我希望我的程序验证我的输入是否与字符串“phone”的模式相同
我做了以下事情
if(phone.contains("([0-9][0-9][0-9]) [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]")) {
//display pass
}
else {
//display fail
}
没成功。我也尝试过其他组合。没有任何效果。
问题: 1. 如果不使用上面的“模式”,我怎样才能实现这一目标? 2. 如何用模式来做到这一点。我尝试了如下模式
模式pattern = Pattern.compile("(\d+)"); 匹配器 match =pattern.matcher(phone);
if (match.find()) {
//Displaypass
}
最佳答案
String#matches
检查字符串是否与模式匹配:
if (phone.matches("\\(\\d{3}\\) \\d{3}-\\d{4}")) {
//Displaypass
}
该模式是正则表达式。因此,我必须转义圆括号,因为它们在正则表达式中具有特殊含义(它们表示捕获组)。
contains()
仅检查字符串是否包含传递给它的子字符串。
关于java - 字符串上的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16341569/