ブログ

正規表現について

初めまして。インターン大学一年生の松本です。まだまだペーペーで役立たずの僕ですが、これから全力で頑張って会社に少しでも貢献したいと思っています!
 
早速ですが、私が最近学んだ正規表現について解説したいと思います。正規表現はテキストエディタ、ワードプロセッサなどのアプリケーションプログラムで、さまざまなプログラミング言語でライブラリによって使うことができます。英語で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
 
例に挙げたのは単純な文字列ですが複雑になればなるほど、正規表現のありがたみが実感できると思います^^
 
正規表現は覚えておくと様々な場面で、仕事の効率化を行えると思います。しかし、中途半端な知識ではかえって手間がかかったり、抽出漏れが起きるリスクがあります。なので覚えるからには完璧に使いこなせるようにしましょう。(僕も人に言えるような技術は全くありませんが^^;)

最速で理解したい人のためのIT用語集前のページ

Adobe Analytics: DatafeedのログからパスフローレポートをBigQueryで作成する次のページ

ピックアップ記事

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

関連記事

  1. Tableau

    最年少DATA Saberになって感じたこと〜Tableau〜

    【目次】・自己紹介・DATA Saberとは・DATA Sabe…

  2. ブログ

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

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

  3. ブログ

    ②DMPについてーAdobe Audience Manager

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

  4. ブログ

    ⑥DMPについてー日本に進出していないDMP

    こんにちは!インターン生の藤本です。今日は「日本に進出していないDM…

  5. ブログ

    ベイズとR

    ベイズの定理の初めのほうをまとめておこうと思います。ミーハーなのでつ…

  6. Python

    市区町村一覧・自治体の一覧を取得する

    最初に顧客マスタには郵便番号や市区町村をデータを持っていることが多い…

コメント

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

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

CAPTCHA


カテゴリ
最近の記事
  1. モック作成が面倒で “楽” した話
  2. Fivetranからdbtプロジェクトを実行する
  3. Account Engagementで送るメールをマルチエー…
  4. 協力と裏切りの理論
  5. 【Snowflake Tips】Content-Typeには…
  1. Tableau

    Tableau Tips〜WINDOW関数〜
  2. Data Clean Room

    SnowflakeのData Clean Roomを基礎から一番詳しく解説(4回…
  3. Dataform

    Dataformでtype:’incremental’の…
  4. Amazon Web Services

    セキュリティグループ vs ネットワークACL
  5. Tableau

    Tableau:2つの値の比較に便利な「ダンベルチャート」を作る
PAGE TOP