我正在编写一小段代码,用于从文本文档中提取包含特定单词的句子。
以下是句子合格的条件:
句子必须包含搜索词。
句子必须以大写字母开头。
句子必须以句点结尾
句子必须至少包含8个单词。
经过一些研究,我发现最快的方法是使用preg_split(),但是我对regex真的很陌生,因此我对前两个条件有困难。最后一个可以在str_word_count()中使用if 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.,因为它包含我们的搜索词,并且满足所有三个条件
如有任何帮助,将不胜感激
亲切地问候艾哈迈尔
发布于 2014-11-25 15:00:25
要检查句子中是否存在单词,请使用
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.
}发布于 2014-11-25 15:06:06
您的正则表达式字符串可能需要以下元素:
([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
https://stackoverflow.com/questions/27120449
复制相似问题