簡體   English   中英

如何編寫一個正則表達式來匹配不跟另一個“ \\ n”的“ \\ n”?

[英]how to write a regex to match a “\n” which is not followed another “\n”?

我只想在“ \\ n”后面沒有另一個“ \\ n”的情況下才用“”(空字符串)替換“ \\ n”。

var text  = "abcdefg
             abcdefg

             1234556
             1234556

             ABCDEFG
             ABCDEFG";

因此,如果我有一個如上所述的字符串,我想在替換“ \\ n”后使其像這樣。

"abcdefgabcdefg

 12345561234556

 ABCDEFGABCDEFG";

但是,我不知道如何編寫一個正則表達式來匹配未跟在另一個“ \\ n”后面的“ \\ n”。

這些是我嘗試過的,但是它們都匹配“ \\ n”和“ \\ n \\ n”。

var pattern1 = new RegExp("\\n{1}");
var pattern2 = new RegExp("\\n(?!\\n)");

在這種情況下,有人可以幫我寫一個正則表達式嗎?

謝謝!

您可以匹配以下內容:

[^\\\\n](\\\\n)[^\\\\n]

演示: http//regex101.com/r/eP9xD1

您可以使用/([^\\n])\\n([^\\n])/g並將其替換為\\1\\2

用法

> str = 'abcdefg\nabcdefg\n\n1234556\n1234556\n\nABCDEFG\nABCDEFG';
> str.replace(/([^\n])\n([^\n])/g, '\1\2');
  "abcdefbcdefg

  123455234556

  ABCDEFBCDEFG"

正則演示

小提琴

您可以使用否定前瞻匹配\\n ,然后再匹配另一個\\n

\n(?!\n)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM