所以我写了下面的代码来显示句子中第四个完整句号/句号之后的单词。
$text = "this.is.the.message.seperated.with.full.stops.";
$limit = 4;
$minText = explode(".", $text);
for($i = $limit; $i < count($minText); $i++){
echo $minText[$i];
}
该算法正在运行,并在第四个&#34;之后向我显示句子的其余部分。&#34;完全停止/期间....我的问题是输出没有显示句子中的句号,因此它只显示我没有正确标点符号的文本&#34;。&#34; ....有人可以帮我解决如何修复代码,以显示完整的停止/期间?
非常感谢
答案 0 :(得分:1)
$text = "this.is.the.message.seperated.with.full.stops.";
$limit = 4;
$minText = explode(".", $text);
for($i = $limit; $i < count($minText); $i++){
echo $minText[$i].".";
}
答案 1 :(得分:1)
如果您希望在单词之间的时间段内分解,但将结果保留为实际标点符号,则可能需要使用preg_replace()
将句点转换为另一个字符,然后将其展开。< / p>
$text = "this.is.the.message.seperated.with.full.stops.";
$limit = 4;
//replace periods if they are follwed by a alphanumeric character
$toSplit = preg_replace('/\.(?=\w)/', '#', $text);
$minText = explode("#", $toSplit);
for($i = $limit; $i < count($minText); $i++){
echo $minText[$i] . "<br/>";
}
哪种收益
seperated
with
full
stops.
当然,如果您只想打印所有句号,请在echo
期限后添加。
echo $minText[$i] . ".";
答案 2 :(得分:1)
您可以通过更改offset参数使用strpos()函数找到字符串中分隔符(。)的第n个位置,而不是拆分输入字符串然后迭代它。
然后,只需从我们刚刚确定的位置打印子串即可。
<?php
$text = "this.is.the.message.seperated.with.full.stops.";
$limit = 4;
$pos = 0;
//find the position of 4th occurrence of dot
for($i = 0; $i < $limit; $i++) {
$pos = strpos($text, '.', $pos) + 1;
}
print substr($text, $pos);
答案 3 :(得分:1)
<<
注意echo命令结束时添加的句号//。&#34;。&#34;;
答案 4 :(得分:1)
如果需要的输出是&#34; seperated.with.full.stops。&#34;,那么您可以使用:
<?php
$text = "this.is.the.message.seperated.with.full.stops.";
$limit = 4;
$minText = explode(".", $text);
$minText = array_slice($minText, $limit);
echo implode('.', $minText) . '.';