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

Php 正则表达式不';如果文本包含某些字符,则不匹配,php,regex,Php,Regex,我试图匹配包含某些字符的字符串,但不包含其他字符。问题是,如果字符串包含允许的字符,表达式会找到匹配项,即使它包含无效字符(没有异常,但不是我想要的)。 我使用的表达式类似于([^abc][def])+ 所以问题是:我是否可以定义一组字符,如果包含在字符串中,将阻止表达式与字符串匹配?您必须锚定表达式,以确保字符串中没有其他字符。例如: ^[chars]+\z 或者,您可以简单地反转字符类,如果存在无效字符,您将获得匹配: [^chars] 如果要将此类检查与同一正则表达式中的其他表达式组合

我试图匹配包含某些字符的字符串,但不包含其他字符。问题是,如果字符串包含允许的字符,表达式会找到匹配项,即使它包含无效字符(没有异常,但不是我想要的)。
我使用的表达式类似于
([^abc][def])+


所以问题是:我是否可以定义一组字符,如果包含在字符串中,将阻止表达式与字符串匹配?

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

^[chars]+\z
或者,您可以简单地反转字符类,如果存在无效字符,您将获得匹配:

[^chars]
如果要将此类检查与同一正则表达式中的其他表达式组合,可以使用前瞻:

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

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

^[chars]+\z
或者,您可以简单地反转字符类,如果存在无效字符,您将获得匹配:

[^chars]
如果要将此类检查与同一正则表达式中的其他表达式组合,可以使用前瞻:

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

你用的是哪种口味的正则表达式?绳子是用什么做的?只有信吗?任何字符?单词字符,除了一些字母。显示一些输入以及它们是否应该匹配。@xyu,当然。例如:
[^\Wabc]
将匹配
\w
中除
abc
之外的所有内容。您使用的正则表达式是什么味道的?字符串是由什么组成的?只有信吗?任何字符?单词字符,除了一些字母。显示一些输入以及它们是否应该匹配。@xyu,当然。例如:
[^\Wabc]
将匹配
\w
中除
abc
之外的所有内容。