如何判断 preg_replace() 是不匹配还是从一开始就匹配?
这两个条件都返回 false,你如何区分它们?
不使用第三个参数可以完成吗?
Both conditions returns false, how can you distinguish them?
Can it be done without using the third parameter?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您可能正在谈论 strpos 如果它不匹配任何内容,则返回 false;如果“needle”匹配,则返回 0 “干草堆”的最开始。 这些都是“错误”值,因此您需要使用三重等于运算符显式检查它们:
You may be talking about strpos which returns false if it doesn't match anything or 0 if the 'needle' matches the very start of the 'haystack'. These are both 'falsey' values, so you need to explicitly check them with a triple equals operator:
preg_replace 可以有多个引用,因此如果您首先引用类似
/^(.){min,max}
的内容,其中 min/max 是您尝试匹配的最小/最大字符数一开始,该匹配将是 \\1 ,下一组括号将是 \\2 ,依此类推。如果没有更多信息,很难判断这个解决方案或其他解决方案是否有效。
preg_replace can have multiple references, so if you made you first reference something like
/^(.){min,max}
where min/max is your minimum/maxium number of characters you're trying to match in the beginning, that match would be \\1 and the next set of parens would be \\2 and so on.Without more information, its hard to tell if this or other solutions will work.
也许您可以在此处放置一些示例代码,但您可以查看第五个参数:
$count
,它是完成的替换数量。Perhaps you can put some sample code here, but you can look into the fifth argument:
$count
, which is the number of replacements done.创建一个包含搜索字符串的临时变量。
替换后检查新字符串 == temp var 是否。
如果相等则返回 false,否则返回 true。
Create a temp var containing search string.
After replace check if new string == temp var.
If equivalent return false else return true.