java - 无效的正则表达式

标签 java regex pattern-matching

我正在尝试将我的模式与 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/

相关文章:

Vim中的正则表达式-在编号行之前插入空行

java - 从给定地址提取域名 Java RegEx

generics - scala 类型匹配

java - 使用 BeanUtils 复制属性时的类型转换?

java - GLSL 统一行为

php - PDO/mysqli 查询不会返回与带有正则表达式的 mysql cli 相同的行

ruby-on-rails - 从特定字符串中提取信息

Swift "h"must be bound in every pattern 错误 - 开关问题

java - JVM/编译器会优化一个简单的 super 方法调用吗?

java - LibGdx:将光线与 ModelInstance 中的网格相交