PHP在纯文本中查找复杂关键字(字符串)

时间:2011-03-20 15:25:37

标签: php

这可能是一个经常出现的问题,但我的情况是:

假设 我的关键字是“黑胡椒” 我的纯文本是一个包含“胡椒”字样的食谱

我希望能够突出强调花椒这个词,而不仅仅是胡椒(尽管后者可能是一个很好的成就)

是否可以在php中使用preg_match? shoudl我拆分关键词并进行多重比较?

感谢

2 个答案:

答案 0 :(得分:2)

这个问题略显不清楚。你想要突出与黑胡椒有关的一切吗?在辣椒的情况下,这很容易,因为它与胡椒一起用一个词。但是,如果文本包含“黑鸟”,那么你会突然强调这个词吗?

您尝试做的事情需要智能或至少是复杂的词汇方法,您无法通过算法解决它。

如果你的关键词只是辣椒,那就变得容易了,但只有胡椒只有一个含义。在这种情况下,你可以突出显示胡椒中的所有内容。但是你会错过使用多个单词的术语。在这里,你需要再次采用词汇方法。如果你的引擎知道黑胡椒和白胡椒是辣椒的子模式,那么它就可以了。

答案 1 :(得分:1)

如果您拆分关键字并将其与插入符号粘合在一起,则可以将它们用作简单正则表达式的一部分:

$result = preg_replace("/(\w*(?:black|pepper)\w*)/i", "<b>$1</b>", $target_text);

编辑:从正则表达式标志中删除g,记住它的功能错误