2 回答
TA贡献1805条经验 获得超10个赞
终于找到了解决办法。单引号被存储在数据库中的' 更换~( auto(?:'s)? )~与~( auto(?:'s)? )~解决我的问题。
完整的工作代码:
<?php
$message = "1. test autotest test<br \>2. test auto's test<br \>3.test auto test ";
$message = preg_replace_callback("~( auto(?:'s)? )~si", function ($match)
{ return ' <a href="https://example.com">'.$match[1].'</a> '; }, $message, 1);
echo $message;
?>
暗示。提示。所以在类似的情况下,检查一个字符是如何存储在你的数据库中的,并在你的正则表达式中使用它。
TA贡献1877条经验 获得超6个赞
只需删除1preg_replace 末尾的(这意味着只替换一次):
$message = preg_replace_callback("~( auto(?:'s)? )~si", function ($match)
{ return ' <a href="https://example.com">'.$match[1].'</a> '; }, $message);
// here __^^^
- 2 回答
- 0 关注
- 187 浏览
添加回答
举报