【发布时间】:2009-06-04 01:39:03
【问题描述】:
两个条件都返回false,如何区分?
不使用第三个参数可以吗?
【问题讨论】:
-
你能提供一些示例代码吗?你确定你在谈论 preg_replace() 吗?第三个参数是必填的主题。 PHP 手册说 preg_replace() 也不返回 false ,但错误时返回 null ,不匹配时返回原始主题,如果找到匹配则修改主题。
标签: php regex preg-replace
两个条件都返回false,如何区分?
不使用第三个参数可以吗?
【问题讨论】:
标签: php regex preg-replace
您可能正在谈论strpos,如果它不匹配任何内容,则返回 false;如果“needle”与“haystack”的开头匹配,则返回 0。这些都是“假”值,因此您需要使用三等号运算符显式检查它们:
if (strpos($haystack, $needle) === false) {
// $needle NOT found in $haystack.
} else {
// $needle was found in $haystack.
}
【讨论】:
preg_replace 可以有多个引用,因此如果您首先引用 /^(.){min,max} 之类的内容,其中 min/max 是您在开始时尝试匹配的最小/最大字符数,则匹配将是 \\1下一组括号将是 \\2 等等。
如果没有更多信息,很难判断此解决方案或其他解决方案是否有效。
【讨论】:
也许你可以在这里放一些示例代码,但你可以查看第五个参数:$count,这是完成的替换次数。
【讨论】:
创建一个包含搜索字符串的临时变量。
替换后检查是否新字符串 == temp var。
如果等价返回false,否则返回true。
【讨论】: