PHP在纯文本中查找复杂关键字(字符串)
这可能是一个常见的问题,但我的情况是: 假定 我的关键词是“黑胡椒” 我的纯文本是一个包含“胡椒”这个词的食谱 我想强调一下胡椒粉这个词,而不仅仅是胡椒粉(尽管后者也可能是一个很好的成就) 在php中使用preg_match是否可能?我应该拆分关键字并创建多个比较吗PHP在纯文本中查找复杂关键字(字符串),php,Php,这可能是一个常见的问题,但我的情况是: 假定 我的关键词是“黑胡椒” 我的纯文本是一个包含“胡椒”这个词的食谱 我想强调一下胡椒粉这个词,而不仅仅是胡椒粉(尽管后者也可能是一个很好的成就) 在php中使用preg_match是否可能?我应该拆分关键字并创建多个比较吗 谢谢这个问题不太清楚。你想突出所有与黑胡椒有关的东西吗?对于胡椒粉来说,这很容易,因为它和胡椒粉放在一个词里。但是,如果文本中包含“黑鸟”,您会同时突出显示这个词吗 你要做的事情需要智慧,或者至少需要一个复杂的词汇方法,你不能用算法
谢谢这个问题不太清楚。你想突出所有与黑胡椒有关的东西吗?对于胡椒粉来说,这很容易,因为它和胡椒粉放在一个词里。但是,如果文本中包含“黑鸟”,您会同时突出显示这个词吗 你要做的事情需要智慧,或者至少需要一个复杂的词汇方法,你不能用算法来解决它
如果你的关键词只是pepper,那就容易多了,但前提是pepper只有一个意思。在这种情况下,您可以突出显示所有含有胡椒粉的内容。但你会错过使用不止一个词的术语。在这里,您需要再次使用词汇方法。如果你的引擎知道黑胡椒和白胡椒是胡椒的子模式,那么它就可以工作。这个问题还不清楚。你想突出所有与黑胡椒有关的东西吗?对于胡椒粉来说,这很容易,因为它和胡椒粉放在一个词里。但是,如果文本中包含“黑鸟”,您会同时突出显示这个词吗 你要做的事情需要智慧,或者至少需要一个复杂的词汇方法,你不能用算法来解决它
如果你的关键词只是pepper,那就容易多了,但前提是pepper只有一个意思。在这种情况下,您可以突出显示所有含有胡椒粉的内容。但你会错过使用不止一个词的术语。在这里,您需要再次使用词汇方法。如果您的引擎知道黑胡椒和白胡椒是胡椒的子模式,那么它就起作用了。如果您拆分关键字并用插入符号将它们粘在一起,您可以将它们作为简单正则表达式的一部分使用:
$result = preg_replace("/(\w*(?:black|pepper)\w*)/i", "<b>$1</b>", $target_text);
$result=preg_replace(“/(\w*(?:黑色|胡椒粉)\w*)/i“,“$1”,$target_text);
编辑:从正则表达式标志中删除了g,记住它的功能错误如果您拆分关键字并使用插入符号将其粘合在一起,则可以将其作为简单正则表达式的一部分使用:
$result = preg_replace("/(\w*(?:black|pepper)\w*)/i", "<b>$1</b>", $target_text);
$result=preg_replace(“/(\w*(?:黑色|胡椒粉)\w*)/i“,“$1”,$target_text);
编辑:从正则表达式标志中删除g,记住它的功能错误让我们假设我应该有一个db,其中包含标记为成分的术语,以及标记为形容词的术语,因此当我匹配单词时,我只能选择那些是成分的术语并排除其余的术语……对吗?有点?事实上,我现在想得更好了,可能会让人困惑,因为如果我搜索辣椒,我也能找到辣椒或者其他与黑胡椒无关的东西…嗯,我想我的想法在这一点上很难实现…假设我应该有一个db,其中包含标记为成分的术语,以及标记为形容词的术语,所以,当我匹配这些词时,我只能选择那些成分的词,而不包括其余的词……对吗?有点?事实上,我现在想得更好了,可能会让人困惑,因为如果我搜索辣椒,我也能找到辣椒或者其他与黑胡椒无关的东西……嗯,我想我的想法在这一点上很难实现。。。