2013-05-15 92 views
0

我试图匹配包含某些字符但不包含其他字符的字符串。问题是,如果字符串包含允许的字符,表达式会找到一个匹配,即使它包含无效的字符(没有什么不寻常的,但不是我想要的)。
我正在使用的表达式看起来像这样([^abc][def])+
所以问题是:我可以定义一组字符,如果包含在字符串中,将停止匹配字符串的表达式?如果文本包含某些字符,正则表达式不匹配

+0

你正在使用哪种正则表达式? – Jerry

+0

字符串是由什么组成的?只有信件?任何字符? – Patashu

+0

字符,除了一些字母。 – undefined

回答

2

您必须锚定您的表达式,以确保字符串中没有其他字符。例如:

^[chars]+\z 

或者你可以简单地反转字符类,你会得到一个匹配,如果无效字符存在:

[^chars] 

如果你想这样的检查与其他表达式组合相同的正则表达式,你可以使用一个lookahead:

^(?=[chars]+\z)expression 
相关问题