找到真实的句子短语,而不是短语的路径

时间:2016-04-30 07:18:33

标签: php find strpos

我的搜索工具有问题! 我使用strpos function$phrase_key中搜索$sentence,但有一些错误!

strpos($sentence , $phrase_key,  0)
$phrase_key = "on the"; 
$sentence1  = "i am sitting on the table"      // Good search
$sentence2  = "the book is on the floor"      // Good search  
$sentence3  = "create function theme to..."   // it not fine
  • on thefunction theme的路径,功能主题不是我需要找到的短语
  • 请告诉我如何解决此问题或如何找到错误的搜索! 非常感谢你!

1 个答案:

答案 0 :(得分:0)

您可以使用带有字边界\b元字符的正则表达式:

if( preg_match( "~\b$phrase_key\b~", $sentence, $matches ) )
{
    // matched string is now in $matches[0]
}

如果您对子字符串位置感兴趣,请使用PREG_OFFSET_CAPTURE标志:

if( preg_match( "~\b$phrase_key\b~", $sentence, $matches, PREG_OFFSET_CAPTURE ) )
{
    // matched string is now in $matches[0][0]
    // matched string position is now in $matches[0][1]
}

regex101 demo