想知道是否有人可以告诉我为什么这个正则表达式不起作用。
表达 - > ^[A-Za-z0-9$&!#-_?:;\"']+$
问题是,它与不在集合中的字符匹配。例如,单词match
正确匹配而单词match~
没有匹配,但match@
和match!
错误匹配。
我正在使用java来匹配它,匹配应该相当直接,使用下面的代码:
RE re = new RE(expression);
return re.match(value);
我知道这可能是一件非常简单的事情,我很遗憾,但如果有人有任何想法,我会非常感激!
答案 0 :(得分:2)
我怀疑它的#-_
正在起作用。逃离-
,看看是否有帮助。
新表达式为^[A-Za-z0-9$&!#\-_?:;\"']+$
答案 1 :(得分:1)
问题是字符集中的连字符-
。您正在接受来自#to _。
将其更改为^[-A-Za-z0-9$&!#_?:;\"']+$
或转义-
。