当 preg_quote - PHP 中的模式和主题时,Preg_match 不起作用
Preg_match doesn't work when pattern and subject inside preg_quote - PHP
我正在尝试 preg_match 通过使用 preg_quote 作为我的模式和主题。
问题是 preg_match 似乎与它们不匹配。
我删除了 preg_quote,它非常适合我。
我 preg_quote 主题和消息以查看输出结果,它们完全相同,但 preg_match 似乎不匹配。
在某些情况下,我需要 preg_quote。
$message = "My two great things in life are spaghetti and bolognese Order yours #online from Ammou Pizza in Limassol!
foody.com.cy/ammou-pizza";
if(preg_match('#' . preg_quote("ammou-pizza") . '#', preg_quote($message)))
echo 'here';
我希望输出为 'here' 但实际输出只是退出代码 0。
您不应使用 preg_quote($message)
作为要搜索主题中的原始文本。这只是为了确保任何文本都是有效的正则表达式。如果你回显这个结果,你会得到...
My two great things in life are spaghetti and bolognese Order yours #online from Ammou Pizza in Limassol\!
foody\.com\.cy/ammou\-pizza
如您所见,它已编码 ammou\-pizza
。这不是您想要的,只需要 \-
序列,因为 -
与正则表达式不同,而不是简单的破折号。
只需使用...
if(preg_match('#' . preg_quote("ammou-pizza") . '#', $message))
preg_quote
在这里没用,因为你的正则表达式中没有特殊字符,使用:
if ( preg_match('#ammou-pizza#', $message) )
echo 'here';
在你的情况下,使用preg_match
不是强制性的,你最好使用[strstr][1]
,它更有效,因为你想找到一个简单的字符串:
if (strstr('ammou-pizza', $message) )
echo 'here';
我正在尝试 preg_match 通过使用 preg_quote 作为我的模式和主题。 问题是 preg_match 似乎与它们不匹配。
我删除了 preg_quote,它非常适合我。 我 preg_quote 主题和消息以查看输出结果,它们完全相同,但 preg_match 似乎不匹配。 在某些情况下,我需要 preg_quote。
$message = "My two great things in life are spaghetti and bolognese Order yours #online from Ammou Pizza in Limassol!
foody.com.cy/ammou-pizza";
if(preg_match('#' . preg_quote("ammou-pizza") . '#', preg_quote($message)))
echo 'here';
我希望输出为 'here' 但实际输出只是退出代码 0。
您不应使用 preg_quote($message)
作为要搜索主题中的原始文本。这只是为了确保任何文本都是有效的正则表达式。如果你回显这个结果,你会得到...
My two great things in life are spaghetti and bolognese Order yours #online from Ammou Pizza in Limassol\!
foody\.com\.cy/ammou\-pizza
如您所见,它已编码 ammou\-pizza
。这不是您想要的,只需要 \-
序列,因为 -
与正则表达式不同,而不是简单的破折号。
只需使用...
if(preg_match('#' . preg_quote("ammou-pizza") . '#', $message))
preg_quote
在这里没用,因为你的正则表达式中没有特殊字符,使用:
if ( preg_match('#ammou-pizza#', $message) )
echo 'here';
在你的情况下,使用preg_match
不是强制性的,你最好使用[strstr][1]
,它更有效,因为你想找到一个简单的字符串:
if (strstr('ammou-pizza', $message) )
echo 'here';