如果文本中包含特定字符,正则表达式将不匹配


Regular expression doesn't match if text contains certain characters

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

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

^[chars]+'z

或者您可以简单地反转字符类,如果存在无效字符,您将获得匹配:

[^chars]

如果您想将这些检查与同一正则表达式中的其他表达式组合在一起,您可以使用forward:

^(?=[chars]+'z)expression