ブログ

正規表現について

初めまして。インターン大学一年生の松本です。まだまだペーペーで役立たずの僕ですが、これから全力で頑張って会社に少しでも貢献したいと思っています!

 

早速ですが、私が最近学んだ正規表現について解説したいと思います。正規表現はテキストエディタ、ワードプロセッサなどのアプリケーションプログラムで、さまざまなプログラミング言語でライブラリによって使うことができます。英語でregular expression(略してregex)と表現され“いくつかの文字列を一つの形式で表すための表現方法と定義されています。自分なりにもう少し砕いて定義すると複数の文字列データから必要なデータを抽出したいとき、一つ一つデータを抽出していては時間がかかるし抽出漏れが起こるかもしれない。そのようなことを防ぐため、文字、数字、特殊文字(メタ文字)を利用して該当する文字データをすべて抽出するです。これでも全く実際に正規表現に触れたことのない方ならさっぱりだと思うので実際に例を出しながら説明していきたいと思います(笑)

 

ある日、ある通信事業者に勤めているAさんが上司から「明日までにこのデータから090-で始まる電話番号だけまとめてリストにまとめて」言われました。そこに載っているのは大量の顧客の電話番号データ。しかもそこに記載されているのは090-xxxx-xxxx,080-xxxx-xxxx,070-xxxx-xxxxといった風に不規則に並んだもの。絶対に明日までに終わらすことができない、、、

自力でやれば3日かかってしまいそうな仕事ですが、Aさんはなんと1分でその仕事を片付けてしまいました。どんなからくりを使ったか、、、

まさにそこで正規表現の知識を使ったのです。先ほども言った通り、正規表現とは“いくつかの文字列を一つの形式で表すための表現方法です。(定義は重要なのでもう一度書きました(笑))。この定義に当てはめると、いくつかの文字列(この例の場合だと大量の電話番号)を一つの形式(この場合だと090-\d{4}-\d{4})で表現する、といった感じになります。

\d{n}はメタ文字で、それぞれ”0~9までの数字一文字直前の文字をn回繰り返すを意味します。今回は数字列の抽出をしましたが、文字、文字と数字が混合したものなどと複雑なものも瞬時に抽出が可能です。

 

そのほか解説を加えながら列挙したいと思います。

. … .(ピリオド)は任意の一文字の意味→田辺、田中、田上など。任意の一文字なので田1、田Aなども該当。

b.+k … +は一回以上の繰り返しの意味→任意の文字の一回以上の繰り返しなので、bookbackblackjackなど。先ほど同様b1kbe3kba31lkなども該当。

[13579] … []内の文字一文字の意味→一桁の奇数。

よく使うメタ文字をまとめたサイトがあったのでリンク先を貼っておきます。

http://gimite.net/help/devas-ja/all_regex.html

 

例に挙げたのは単純な文字列ですが複雑になればなるほど、正規表現のありがたみが実感できると思います^^

 

正規表現は覚えておくと様々な場面で、仕事の効率化を行えると思います。しかし、中途半端な知識ではかえって手間がかかったり、抽出漏れが起きるリスクがあります。なので覚えるからには完璧に使いこなせるようにしましょう。(僕も人に言えるような技術は全くありませんが^^;)

ピックアップ記事

  1. 最速で理解したい人のためのIT用語集

関連記事

  1. ブログ

    データ視覚化ツール「Power BI」

    はじめまして、インターン生の山本です。前回の記事から非常に期間…

  2. ブログ

    ③DMPについてーKrux

    こんにちは!インターン生の藤本です。今日は海外DMP2つ目、Kru…

  3. ブログ

    カスタマージャーニー作成

    こんにちは!インターンの藤本です。今日は私がここ数日間取り組ん…

  4. ブログ

    DirectionAPI+Tableauでドライブ時間の可視化(前編)

    市区町村一覧・自治体の一覧を取得する(Python)の続きです!目…

  5. ブログ

    秋とチラシとリードのスコアリング機能

    こんにちは、インターン生の柳沼です。最近はセミの声もだんだんと聞こえな…

  6. ブログ

    レポートビルダーについて

    お久しぶりです!インターン生の藤本です。今回も前回に引き続き(…

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

CAPTCHA


  1. IT用語集

    アーカイブ(Archive)って何?
  2. ブログ

    ⑤おまけーDMPに関する用語まとめ
  3. IT用語集

    【完全版】Tableau(タブロー)って何?
  4. IT用語集

    メソッド(Method)って何?
  5. ブログ

    大学3年生、マーケティングオートメーションを学ぶ
PAGE TOP