【发布时间】:2013-06-11 19:21:06
【问题描述】:
在我们的 apache 日志中看到一些错误后,我一直试图找出“为什么”。与我试图查找以反斜杠字符开头的字符串的 preg_match 命令相关的错误:
preg_match('/^\\/',$str)
它报告“preg_match(): 没有找到结束分隔符'/'”
出于好奇,我尝试了双引号而不是单引号,以及 1 到 6 个反斜杠的组合,但它总是报告相同的错误。 (我最终暂时将测试切换到 if(substr($str,0,1) == "\") {})
【问题讨论】:
-
为什么不
substr($str, 0, 1) === '\\'甚至$str[0] === '\\'? -
@Gumbo:我不得不三思而后行
===才意识到确实需要消除误报。你这样做是故意的还是只是一个好习惯?感谢“心理矫正”! :-) -
@Gumbo: ...aa 事实证明它毕竟不是必需的。 WTF php,我认为
'0' == '\\'是true,因为第一个是数字。我需要停止使用那种语言。 ;-) -
@Jon 只是一种习惯。如果我希望结果与我要比较的值的数据类型相同,我将使用
===。 -
@Gumbo:好习惯。我做得不够。
标签: php regex preg-match delimiter backslash