如果字符串包含至少一个问号,则regex返回false

时间:2010-11-18 04:08:25

标签: php regex

我有一个字符串,我想检测它是否包含至少一个问号。如果它确实返回false。我试图寻找它,但问号似乎是一个特殊的角色。你会怎么做呢?

谢谢。

2 个答案:

答案 0 :(得分:5)

你只需要逃避?在你的正则表达式。 preg_match('/\?/','A string?',$matches)会返回匹配项吗?如果存在。

那就是说,你可以使用strpos()。它会更快,因为你真的不需要一个正则表达式引擎来找到?

答案 1 :(得分:3)

不需要正则表达式。

if (strpos($str, '?') !== false) { 
    return false;
}

// Shorter but always executes due to lack of a conditional structure
// May not be what you need if you're doing various other checks
return strpos($str, '?') === false;

但你是对的,?是正则表达式中的特殊字符。它告诉正则表达式引擎查找零或一次出现的事情。

如果您在更复杂的正则表达式中检查问号,那么只需使用反斜杠将其转义为Paul Kehrer says