【发布时间】:2020-12-18 09:00:41
【问题描述】:
我正在尝试使用 preg_replace 替换 PHP 中的单词。执行代码时,它将“汽车燃料盖”替换为“盖”,而不是“汽车零件”。
$string = "fuel cap for car";
$find = array('cap', 'fuel cap for car');
$replace = array('hat', 'auto parts');
echo preg_replace($find, $replace, $string);
所以,我已经尝试了另一种方法。我将原始值和替换值存储在数据库中,例如:
表格
原文:汽车|摩托车|汽车|汽车 零件|活塞|摩托车|摩托车用金属油箱盖 替换:汽车配件
原件:帽子|棒球帽|帽子|无檐小便帽 替换:帽子
字符串是:汽车的油箱盖。
代码是:
$result = mysqli_query($connect, $query);
while($row2 = mysqli_fetch_assoc($result)){
if(preg_match('/\b'.$row[suggestions].'\b/i', $string)){
$string = $row['description'];
但是,它用“帽子”代替字符串,而不是“汽车零件”
【问题讨论】:
-
如果需要完全匹配,可以使用
str_replace。不需要正则表达式。 -
您的代码不应该先将
cap替换为hat,然后将fuel hat for car留给您吗?然后,当它试图找到fuel cap for car时,它将失败,将您的最终字符串保留为fuel hat for car -
我的回答有帮助吗?
标签: php regex preg-replace