如果文本包含某些字符,则正则表达式不匹配

时间:2013-05-15 09:37:22

标签: php regex

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

1 个答案:

答案 0 :(得分:2)

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

^[chars]+\z

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

[^chars]

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

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