检查php中的重叠偏移量

检查php中的重叠偏移量,php,preg-match,offset,strpos,Php,Preg Match,Offset,Strpos,如何区分偏移量重叠的字符串中的单词。 例如,我有一个字符串: $s = "The famous team violin will showcase there violin talent to the fans who love violin."; 然后我有一个关键字提取,它用偏移量检索这些单词: team violin - 11 violin - 16 根据以上结果,“小提琴”一词与“团队小提琴”重叠 正确的结果应该是: team violin - 11 violin - 43 这是用于

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

$s = "The famous team violin will showcase there violin talent to the fans who love violin.";
然后我有一个关键字提取,它用偏移量检索这些单词:

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脚本可以解决这样的问题吗?

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

显示用于提取关键字的代码这些偏移量没有意义。“团队小提琴”在你的短语中从单词7开始,没有单词#16。也不是你在第11和16字符的短语。。。这些数字代表什么。你的先例规则是什么?你怎么知道团队小提琴比小提琴更重要?因为它更长?@Marc team小提琴从位置11开始,如果按字节计数,字符串的开头是位置0。@Marc:看起来偏移量是字符,而“0”代表第一个字符。