我正在尝试匹配包含某些字符但不包含其他字符的字符串。问题是如果字符串包含允许的字符,表达式会找到匹配项,即使它包含无效字符(没有异常,但不是我想要的)。
我正在使用的表达式如下([^abc][def])+
所以问题是:我可以定义一组字符,如果包含在字符串中,将阻止表达式匹配字符串吗?
答案 0 :(得分:2)
您必须锚定表达式,以确保字符串中没有其他字符。例如:
^[chars]+\z
或者您可以简单地反转字符类,如果存在无效字符,您将获得匹配:
[^chars]
如果你想将这些检查与同一个正则表达式中的其他表达式结合起来,你可以使用前瞻:
^(?=[chars]+\z)expression