0

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

4

1 回答 1

3

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

^[chars]+\z

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

[^chars]

如果您想将此类检查与同一正则表达式中的其他表达式结合起来,您可以使用前瞻:

^(?=[chars]+\z)expression
于 2013-05-15T09:46:27.127 回答