実践 Atomと正規表現で検索置換してみた1


人からもらったCSVのデータを整形してRubyのハッシュや配列
にするのに、まだウロ覚えの正規表現を使ってみた。
まずは、Part1として復習を兼ね、必要そうな正規表現を思い出してみる。
Atomでの実際の検索置換はPart2で書いているので、せっかちな方はリンク先に飛んで頂ければと思います。

元のデータ

Tokyo,130,,
Kanagawa,110,,
Saitama,105,,
Chiba,108,,

最終形態

この状態にしたい。

{ Tokyo: 130, Kanagawa: 110, Saitama: 105, Chiba: 108 }

必要そうな知識

必要となりそうな正規表現の知識の候補は以下となる。
実際にPart2を書いてからこのPart1を見直すと必要なかったものもあったが、正規表現の勉強&復習という観点から、敢えてこのままにしてきますが、ご容赦下さい。

(1).行頭を抽出

(2).行末を抽出

(3).改行箇所を抽出

(4).英字で書かれている箇所の抽出

(5).数字で書かれている箇所の抽出

(6).カンマが複数書かれている箇所の抽出。

答え

(1).行頭を抽出

^

(2).行末を抽出

$

(3).改行箇所を抽出

\n

(4).英字で書かれている箇所の抽出

[a-z]
ただし、これだと文字単位で抽出されるので
単語単位で抽出したいなら
1回以上の繰り返しのうち最長を意味する
[a-z]+

(5).数字で書かれている箇所の抽出

\d
ただし、これだと1文字単位で抽出されるので
まとまりで抽出したいなら
1回以上の繰り返しのうち最長を意味する
\d+

(6).カンマが複数書かれている箇所の抽出。

,{2}
ここで使っているのは{n,m} の量指定子。直前の文字(ここで言えばカンマ)が n 個以上、m 個以下 という意味なる。今回は 2以上 だけでよいので {n} の形だけでよい。

実際にAtomでの検索置換はPart2にて。

初心者歓迎!手と目で覚える正規表現入門・その1「さまざまな形式の電話番号を検索しよう」

Ruby 正規表現のまとめ