0

我有一个字符串,我转换为一个数组。我转换的相同字符串是来自搜索的关键字,它与一大段文本中的关键字匹配。

我想使用数组,使用其中的关键字将 html 标签添加到具有相似关键字的文本块中。

例如:关键字:狗、猫、牛

之前的文字:我有两只狗,四只猫和二十头牛。

后文:我养了两条狗、四只猫和二十头牛

我拥有的文本块在一个变量中。

但我不确定我到底需要什么正则表达式,与 preg_replace(); 一起使用。

<?php
    echo preg_replace($text, <b></b>, $keywords);
?>

我是否走对了方向?

4

2 回答 2

2

通过将单词与|. 在替换字符串中,用于$0引用匹配的文本部分。

$regexp = '/\b(' . implode('|', $keywords) . ').*?\b/i';
echo preg_replace($regexp, '<b>$0</b>', $text);

演示

于 2013-10-31T21:33:45.810 回答
0

您可以使用以下代码:

echo preg_replace('/\b((?:cat|dog|cow)\S*)/i', `<b>$1</b>`, $keywords);
于 2013-10-31T21:33:41.150 回答