ブログ

正規表現について

初めまして。インターン大学一年生の松本です。まだまだペーペーで役立たずの僕ですが、これから全力で頑張って会社に少しでも貢献したいと思っています!
 
早速ですが、私が最近学んだ正規表現について解説したいと思います。正規表現はテキストエディタ、ワードプロセッサなどのアプリケーションプログラムで、さまざまなプログラミング言語でライブラリによって使うことができます。英語で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. ブログ

    アドテック東京2014

    こんにちは!インターン生の宮川です。本日は9月16~18日に行われた…

  2. ブログ

    初めましてのご挨拶と、業務内容のご紹介

    こんにちは!インターン生の加納です!先月末からこのエクスチュアでお世…

  3. ブログ

    「Power BI」を用いたダッシュボードの作成!①

    こんにちは!インターン生の山本です。前回「Power BI」を使って…

  4. ブログ

    ②DMPについてーAdobe Audience Manager

    こんにちは!インターン生の藤本です。今日は前回、概要をまとめた「海外…

  5. ブログ

    ダッシュボードとは

    こんにちは、インターン生の山本です!前回まではPower BIの使い…

  6. ブログ

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

    こんにちは!エクスチュアでインターンシップに参加している柳沼です。今…

コメント

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

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

CAPTCHA


最近の記事

  1. 回帰分析はかく語りき Part3 ロジスティック回帰
  2. GCSへのSnowflake Open Catalogによる…
  3. VPC Service Controlsで「NO_MATCH…
  4. モダンデータスタックなワークフローオーケストレーションツール…
  5. Streamlit in Snowflakeによるダッシュボ…
  1. Google BigQuery

    Treasure DataからBigQueryにデータを移動させる方法
  2. IT用語集

    オプティマイズ(Optimize)って何?
  3. GA 360 Suite

    Google Analytics 360: BigQueryを使ってアトリビュー…
  4. Tableau

    Tableauで見たい期間のみの昨年対比推移グラフを作る方法
  5. Mouseflow

    Mouseflowを採用するWebサイトが10万を突破!
PAGE TOP