我正在尝试获得一个模式,上面写着:
只有数字 a-z A-Z 0-9 。 + - %
错了,是我的代码:
String regex = "[^a-zA-Z0-9_\\.+-\\%]";
我遇到异常 索引 17 附近的非法字符范围 在 17 指数我有 %,我做错了什么?
最佳答案
您不需要在正则表达式中转义 %
。删除它之前的 \
。
您也不应该转义 .
。在字符类中没有必要这样做:在字符类中,它意味着文字 .
字符,而不是“任何字符”。
但是您确实需要转义-
,这里您指的是文字-
,而不是字符范围。
String regex = "[^a-zA-Z0-9_.+\\-%]";
关于java - 模式名称特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39286632/