我的 PHP 脚本调用 Freebase API 并输出一个段落,然后我在上面做一些正则表达式和其他解析魔法,并将数据返回给变量$paragraph
。段落由多个句子组成。我想要做的是返回该段落的较短版本。
我想显示第一句话。如果它少于 100 个字符,那么我想显示下一个句子,直到它至少有 100 个字符。
我怎样才能做到这一点?
您不需要为此使用正则表达式。您可以使用strpos()
偏移量 99 来查找位置 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);
}