删除一个换行符?

时间:2013-07-08 16:30:14

标签: regex

我正在使用body.replace(/\r?\n((?!\r?\n)|(?=\r?\n\r?\n\r?\n))/g,'')来替换换行符,问题是它会将它们全部删除,以防万一有两个或更多的换行符我想保留它们,因为它代表一个段落。

例如:

  金钱会让青少年感到压力   这让他们对自己感到不好,并羡慕别人   例如,我的朋友与她的家人住在一起,并且必须与她的妹妹共用一个房间   谁非常可爱和聪明。

     

这个女孩希望她能拥有自己的房间,并且有很多东西,
  但她不能拥有这些东西,因为她的家庭没有多少钱   她的家庭收入很低,因为她的父亲年纪大了,不去上班。

我希望它像:

  金钱导致青少年感到压力。这让他们对自己感到不好,并羡慕别人。例如,我的朋友与她的家人住在一起,并且与她的妹妹共享一个房间,她的妹妹非常可爱和聪明。

     

这个女孩希望她可以拥有自己的房间,并且有很多东西,但她不能拥有这些东西,因为她的家庭没有多少钱。她的家庭收入很低,因为她的父亲年纪大了,不去上班。

提前致谢。

2 个答案:

答案 0 :(得分:3)

你不需要这么复杂的正则表达式。那些环顾四周真的不需要。

你可以简单地使用它:

body.replace(/(\r|\n|\r\n){1,}/g,'$1');

$1是反向引用。如果在您的正则表达式引擎中使用它,请将其替换为\1

答案 1 :(得分:1)

你可以这样做

body.replace(/([^\n])(?:\r?\n)(?=[^\n])/g,"$1");