删除新行

Remove sinlge new lines

本文关键字:新行 删除      更新时间:2023-09-26

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

"foo'nbar'nbaz'n'nquux"

我想拥有

"foo bar baz'n'nquux"

我已经尝试过这个正则表达式:/'n(?!'n)/但它不起作用,它用空格替换单个新行,但也替换一个后面有新行的新行。

试试这个:

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

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

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

@Matt答案的另一个变体。请参阅演示。替换为$1

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