获取包含搜索关键字的完整句子

时间:2017-02-22 13:41:17

标签: php

我必须从给定字符串中获取一个完整的句子,其中必须存在所需的字符。比如说我有一个搜索关键词“不同的主题”,我在“我们的社区是由帮助中心的一组特定主题定义的;请坚持这些主题并避免如果您的问题是关于网站本身,请在我们的元讨论网站上询问。如果您正在寻找其他主题,可能会在另一个Stack Exchange网站上进行讨论。

在我搜索之后,我希望它返回完整句子“ *如果您正在寻找不同的主题,它可能会被另一个Stack Exchange网站覆盖。*

这是包含我的搜索键的完整句子。

我已经使用了以下内容但没有得到正确的输出:

substr($fp, strpos($fp, $search_string) - 100, 200).

这都是PHP。

2 个答案:

答案 0 :(得分:3)

你真的不能用substr()做到这一点,但你可以使用一点正则表达式:

[A-Z][^\\.;]*(different topic)[^\\.;]*

这是EXAMPLE

如果您需要句子末尾的句点,请稍微修改正则表达式,以删除词组末尾的字符匹配句点,[^\\;]而不是[^\\.;]

[A-Z][^\\.;]*(different topic)[^\\;]*

答案 1 :(得分:0)

我使用以下代码解决了我的问题: -

而不是: - substr($ fp,strpos($ fp,$ search_string) - 100,200);

我使用以下内容来获取包含我的搜索键的完整单词的句子: -

 $sentences = explode('.',$fp);
 $subString = "";
 foreach($sentences as $sentence) {
    if(false !== stripos($sentence,$search_string)){
      $subString = trim($sentence) . "\n";
    }   
 }

这有助于我获得正确的结果。