我正在尝试将我的模式与 java 上的地址相匹配。
String regex = "[a-zA-Z0-9,\\.\']";
if(!address.matches(regex)) {
//do something
}
基本上,我希望检测除、
、.
、'
之外的所有特殊字符。
用上面的代码,我的地址
4700 Keele Street, North York, ON
在不应该的时候进入 if 条件。为什么会这样?
还有你如何逃避一个特殊的角色?不应该是\$
吗? Eclipse IDE提示错误说明
"Invalid escape sequence (valid ones are \b \t \n \f \r \” \' \ )"
当我执行 \$
或 \^
时。
最佳答案
我认为您不需要转义集合中的大多数字符。如前所述,您需要包含一个空格并使用“+”捕获其中的 1 个或多个:
String regex = "[a-zA-Z0-9,.' ]+";
关于java - 无效的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5722633/