删除sinlge新行

时间:2016-01-13 18:43:36

标签: javascript regex newline

我想用一个空格替换单个新行,就好像我有这样的字符串:

"foo\nbar\nbaz\n\nquux"

我想要

"foo bar baz\n\nquux"

我已经尝试过这个正则表达式:/\n(?!\n)/但它不能用空格替换单个新行,而且还有一个新行后面有新行。

2 个答案:

答案 0 :(得分:5)

试试这个:

"foo\nbar\nbaz\n\nquux".replace(/([^\n])\n(?!\n)/g,"$1 ")

您的原始文件正在跳过对中的第一个\n,然后替换第二个(因为它后面没有\n)。您需要在之后或之前检查它没有\n$1将匹配的非换行符放回。不幸的是,javascript不支持非消费的后视。

答案 1 :(得分:1)

(^|(?!\n).)\n(?!\n)

@Matt's的另一个变体回答。参见demo {替代$1

https://regex101.com/r/iJ7bT6/7