我的PHP脚本调用Freebase API并输出一个段落,然后我会执行一些正则表达式和其他解析魔法并将数据返回到变量$paragraph
。该段由多个句子组成。我想要做的是返回段落的较短版本。
我想显示第一句话。如果它少于100个字符,那么我想显示下一个句子,直到它至少100个字符。
我该怎么做?
答案 0 :(得分:2)
您不需要正则表达式。您可以使用偏移量为99的strpos()
来查找位置100或之后的第一个句点 - 并substr()
以获取该长度。
$shortPara = substr($paragraph, 0, strpos($paragraph, '.', 99) + 1);
如果原始段落少于100个字符,或者没有以句点结尾,您可能需要添加一些额外的检查:
// find first period at character 100 or greater
$breakAt = strpos($paragraph, '.', 99);
if ($breakAt === false) {
// no period at or after character 100 - use the whole paragraph
$shortPara = $paragraph;
} else {
// take up to and including the period that we found
$shortPara = substr($paragraph, 0, $breakAt + 1);
}