正则表达式匹配整个字符串

时间:2011-12-20 05:33:22

标签: php regex

我对php很新。我需要检查给定字符串是否包含来自给定集合的字符{a, b, c}。所以,我正在尝试正则表达式。 "(abc)+"应该做到这一点。

但是,查看preg_match及相关函数的手册条目,我注意到这些函数执行子字符串匹配,而不是将整个字符串与正则表达式规则匹配。

我确信有一种简单的方法可以做到这一点。基本上,无论整个字符串是否与规则匹配,我都需要二进制答案。你能帮助我吗?

谢谢!

2 个答案:

答案 0 :(得分:3)

您可以使用方括号创建角色类。因此[abc]将匹配类中的任何字符(括号)。

要获得一系列它们,您需要一个量词。您已使用+表示一个或多个。如果您还想允许空字符串,则可以使用*表示零或更多。

要确保检查完整的字符串,您需要锚点。 ^将匹配字符串的开头,$匹配字符串的结尾。

^[abc]+$

如果完整字符串仅包含abc且至少包含一个字符,则此正则表达式将匹配。

您可以在线测试正则表达式,例如在Regexr上。你可以see this regex here当然可以修改它。

答案 1 :(得分:1)

不是将整个字符串与您想要的字符匹配,而是可以尝试匹配任何其他字符,如果有一个匹配,则该字符串不符合您的规则。

只需使用以下内容:

[^abc]