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