我正在编写一小段代码来提取包含文本文档中特定单词的句子。
以下是判刑的条件:
句子必须包含搜索词。
句子必须以大写字母开头。
句子必须以句号结束
句子必须至少有8个单词。
经过一些研究后我发现最快的方法就是使用preg_split()
,但我对regex
很新,因此我遇到前两个条件的困难。最后一个可以使用if str_word_count()
中的else来完成(我认为)。
示例:
Der er en lang og bevæget forhistorie bag lov om varsling m.v. i forbindelse med afskedigelser af større omfang. Det er ikke en bureaukratisk lovtekst blandt så mange andre.
搜索字词:
bureaukratisk
它将返回第二句Det er ikke en bureaukratisk lovtekst blandt så mange andre.
因为
它包含我们的搜索词,并满足所有三个条件
任何帮助都将受到高度赞赏
亲切的问候 艾哈迈尔
答案 0 :(得分:1)
检查句子使用中是否存在Word
if (strpos($str,'are') !== false) {
echo 'word is present';
}
检查单词计数
str_word_count($str);
检查第一个单词是否以大写字母开头
if (strtoupper($str[0]) == $str[0])
{
echo "match";
}
编辑:从段落中获取句子。
$strarr = explode(".",$para)
foreach($strarr as $check)
{
//use the functions i mentioned above here...if it matches print it or concanate it.
}
答案 1 :(得分:1)
你的正则表达式字符串可能需要这些元素:
([A-Z]\w* (.* ){6,} \w+[\.\?\!])
[A-Z] - any capital letter
\w* - zero or more letters
' ' - space
(.* ){6,} - six or more strings of anything ending with a space
' ' - space
\w+[\.\?\!] - at least one letter ending with a . or ? or !
我现在看到你的问题比我想象的要复杂一点。但这是一个好的开始。 Check this site out