Java RegEx无法按预期工作

时间:2012-02-24 16:32:57

标签: java regex

想知道是否有人可以告诉我为什么这个正则表达式不起作用。

表达 - > ^[A-Za-z0-9$&!#-_?:;\"']+$

问题是,它与不在集合中的字符匹配。例如,单词match正确匹配而单词match~没有匹配,但match@match!错误匹配。

我正在使用java来匹配它,匹配应该相当直接,使用下面的代码:

        RE re = new RE(expression);
        return re.match(value);

我知道这可能是一件非常简单的事情,我很遗憾,但如果有人有任何想法,我会非常感激!

2 个答案:

答案 0 :(得分:2)

我怀疑它的#-_正在起作用。逃离-,看看是否有帮助。

新表达式为^[A-Za-z0-9$&!#\-_?:;\"']+$

答案 1 :(得分:1)

问题是字符集中的连字符-。您正在接受来自#to _。

的字符

将其更改为^[-A-Za-z0-9$&!#_?:;\"']+$或转义-