LoginSignup
1
0

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-09-09

人からもらった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「さまざまな形式の電話番号を検索しよう」]
(https://qiita.com/jnchito/items/893c887fbf19e17d3ff9)

[Ruby 正規表現のまとめ]
(https://qiita.com/agotoh/items/87960d256e427d5673a9)

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0