カメリアの記事

意味があることやないことを綴ります

JavaScript で同じ文字列の繰り返しから 1 個減らす処理 ――正規表現は奥が深かった――

複数の改行から 1 個減らす処理というのを書いたことがあるのですが、下のようにしていました。

src.replace(/(\r?\n)+/g, rly => {
  rly.replace(/\r?\n/, "")
})

ついさっき気付いたのですが、もっと簡単に書くことができます。

src.replace(/\r?\n((\r?\n)*)/g, "$1")

なんてことでしょう! 気付いてしまうと、気付かなかったかつての自分が哀れに見えます。正規表現は奥が深いですね。