为什么这个PHP正则表达式返回1?

4
为什么下面的正则函数调用会返回值1
preg_match('<strong>', '<strong[\>\s]+')

根据文档,我认为它们应该被反转。
1个回答

6

<strong>是一个正则表达式,使用尖括号作为分隔符。实际的正则表达式只是strong部分,因为它没有^$锚点,所以可以成功匹配主题字符串。

这将失败:

preg_match('/<strong>/', '<strong[\>\s]+')

太好了,谢谢。我不知道 <> 可以用作定界符。这里还有一些:http://php.net/manual/en/regexp.reference.delimiters.php - onassar
你能确认一下 <strong>/strong/ 这两种格式是否可以互换使用吗? - onassar
是的,在PCRE中,“<strong>”和“/ strong /”是可以互换使用的。在第一个实例中,分隔符是“<”和“>”,而在第二个实例中,分隔符是“/”和“/”。除此之外,它们是完全相同的。允许使用不同的分隔符的原因只是为了易读性;如果您使用“/”,则必须转义模式中的所有“/”(这对于匹配URL或文件路径来说并不是最好的选择)。 - leftclickben

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接