Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

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
*/