检查php中的重叠偏移量

时间:2011-08-10 19:50:20

标签: php preg-match offset strpos

如何区分具有重叠偏移的字符串中的单词。 例如,我有一个字符串:

$s = "The famous team violin will showcase there violin talent to the fans who love violin.";

然后我有一个关键字提取,它使用offset检索这些单词:

team violin - 11
violin - 16

基于上面的结果,结果词“小提琴”与“团队小提琴”重叠

正确的结果应该是:

team violin - 11
violin - 43

这是用于检索每个关键字的偏移量的代码

foreach($keywordArr as $keyword)
{
preg_match('/\b'.$keyword.'\b/',$s,$match,PREG_OFFSET_CAPTURE)
$keywordwithOffset = $keyword."\t".$match[0][1];
}

任何人都有一个可以解决这个问题的PHP脚本吗?

1 个答案:

答案 0 :(得分:0)

我建议你先用较大的关键字提取字符串并检索偏移量,然后用特殊的字符(#,$等)替换大的关键字,尽可能多的字符串长度不会改变,所以当你搜索较小关键字的偏移时,它不会与较大的关键字重叠。