Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

N文字|要素ごとに改行する正規表現

冷静に振り返れば当たり前だったのですが、何故か解決に時間がかかったのでメモ。

実際のところ

単純にN文字毎に切り分ける

世界で一番長い名前らしい「Captain Fantastic Faster Than Superman Spiderman Batman Wolverine Hulk And The Flash Combined」さんの名前を16文字ごとに切り分けてみます。

name = "Captain Fantastic Faster Than Superman Spiderman Batman Wolverine The Hulk And The Flash Combined"
console.log(name.replace(/(?:[\w\s]{16})/g, "$&|\r\n"))
/*
Captain Fantasti|
c Faster Than Su|
perman Spiderman|
 Batman Wolverin|
e The Hulk And T|
he Flash Combine|
d
*/

csv(っぽい)データをN要素ごとに切り分ける

"-1"が64個並んだcsvっぽいデータがあったとします。

str = "-1,-1,-1,-1,-1,-1,-1,-1,(略),-1,-1,-1"

要素のどれかが数値や文字になる可能性がある場合に16要素毎に切り分けたい場合、以下のようにします。

console.log(str.replace(/((?:-*\w+,*){16})/g,"$1\r\n"))
/*
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
*/