我对php很新。我需要检查给定字符串是否包含来自给定集合的字符{a, b, c}
。所以,我正在尝试正则表达式。 "(abc)+"
应该做到这一点。
但是,查看preg_match
及相关函数的手册条目,我注意到这些函数执行子字符串匹配,而不是将整个字符串与正则表达式规则匹配。
我确信有一种简单的方法可以做到这一点。基本上,无论整个字符串是否与规则匹配,我都需要二进制答案。你能帮助我吗?
谢谢!
答案 0 :(得分:3)
您可以使用方括号创建角色类。因此[abc]
将匹配类中的任何字符(括号)。
要获得一系列它们,您需要一个量词。您已使用+
表示一个或多个。如果您还想允许空字符串,则可以使用*
表示零或更多。
要确保检查完整的字符串,您需要锚点。 ^
将匹配字符串的开头,$
匹配字符串的结尾。
^[abc]+$
如果完整字符串仅包含abc
且至少包含一个字符,则此正则表达式将匹配。
您可以在线测试正则表达式,例如在Regexr上。你可以see this regex here当然可以修改它。
答案 1 :(得分:1)
不是将整个字符串与您想要的字符匹配,而是可以尝试匹配任何其他字符,如果有一个匹配,则该字符串不符合您的规则。
只需使用以下内容:
[^abc]