在文本中查找和替换大量关键字
Posted
技术标签:
【中文标题】在文本中查找和替换大量关键字【英文标题】:Finding and replacing large amount of keywords in text 【发布时间】:2012-05-31 06:13:39 【问题描述】:假设我有一个大约 10,000 个单词的 html 文本和一个包含大约 10,000 个关键字的列表。我想在文本中找到所有出现的关键字并将它们替换为<span title="a keyword">keyword</span>
。作为一个额外的复杂因素,我不想替换周围已经有 <span>
的关键词。
在 php 中最好、最有效的方法是什么?
我显然可以为每个关键字构建一个正则表达式并按顺序运行它们,但这似乎是一场复杂的噩梦。
【问题讨论】:
【参考方案1】:您可以使用Preg_Replace 这是一个非常强大的工具,祝你有美好的一天。
【讨论】:
【参考方案2】:可能是这样的?不过我不确定
$str = "this is keyword say this is also keyword say say";
$newtext = wordwrap($str, 18, "\n", true);
$patterns[0] = '/keyword/';
$patterns[1] = '/say/';
$replacements = array();
foreach($patterns as $k=>$v)
$replacements[] = "<span title=\"a ".str_replace("/","",$v)."\">".str_replace("/","",$v)."</span>";
echo preg_replace($patterns, $replacements, $str);
【讨论】:
【参考方案3】:试试这个:
str_replace('your_string','keyword','<span title="a keyword">keyword</span>')
【讨论】:
不幸的是,他说他不想替换已经有跨度的关键字,这样就行不通了。否则,您将在跨度内有跨度。以上是关于在文本中查找和替换大量关键字的主要内容,如果未能解决你的问题,请参考以下文章