首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在使用mb_split()和implode()解析字符串时,如何将多个跳行识别为新段落?

问在使用mb_split()和implode()解析字符串时,如何将多个跳行识别为新段落?
EN

Stack Overflow用户
提问于 2012-02-26 02:16:57
回答 1查看 348关注 0票数 1

下面是我的代码:

代码语言:javascript
复制
$ParagArray=array('\r\n\r\n','\n\r\n\r','\r\r','\n\n');
foreach ($ParagArray as $value){
    $chunks=(mb_split($value,$text));
    $text=implode ("(PARAG)",$chunks);
}
echo "Here is the modified 1 text:<br/>";
echo $text;
echo "<br/>";

$LineArray=array('\r\n','\n\r','\r','\n');
foreach ($LineArray as $value){
    $chunks=(mb_split($value,$text));
    $text=implode ("(LINE)",$chunks);
}
echo "Here is the modified 2 text:<br/>";
echo $text;
echo "<br/>";

我在这里尝试做的是将段落识别为2行跳转,并将回车符识别为1行跳转。我将它们分别替换为(PARAG)和(LINE)标记。

我的问题是,当文本包含3行跳转时,我会得到(PARAG)(LINE),当文本包含4行跳转时,我会得到(PARAG)(PARAG),依此类推。

当有2个或更多的跳行并用一个(PARAG)替换所有的跳行时,有没有办法修改我的代码来捕捉所有的情况

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-26 03:04:04

您可以使用:

代码语言:javascript
复制
$str = preg_replace('/(\r\n\r\n|\n\r\n\r|\r\r|\n\n)[\r\n]*|(\r\n|\n\r|\r|\n)/e', '"$1"? "(PARAG)": "(LINE)"', $str);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9446675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档