ブログ

正規表現について

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

    夏休みのまとめ

    こんにちは!エクスチュアインターン生の柳沼です。夏休みも終わりに近づい…

  2. ブログ

    まぐれ

    こんにちは、インターンの安岡です。今回は「まぐれ―投資家はなぜ、運を…

  3. ブログ

    インドネシアのデジタルマーケティング

    こんにちは!インターン生の山本です!前回は東南アジアの…

  4. ブログ

    Cookieについて調べてみた

    前回の記事で、Cookieとはサーバー側がクライアント側に与える名前の…

  5. ブログ

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

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

  6. ブログ

    ダッシュボードとは

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

コメント

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

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

CAPTCHA


カテゴリ

最近の記事

  1. コンポーザブルCDPにおけるSnowflakeのマルチモーダ…
  2. boxMCPサーバーを使ってみた
  3. #ai-datacloud勉強会でマルチモーダルに触れた日
  4. Matillion ETLを安全に使いたい人へ送る、SSL対…
  5. LangGraphのソースコードから見る今更聞けないAIエー…
  1. Adobe Analytics

    Adobe Analytics:Report Builderの小技:リクエストの…
  2. Google Cloud Platform

    GoogleNext 2019レポート:初日目
  3. Tableau

    Tableau Tips〜WINDOW関数〜
  4. IT用語集

    パス、絶対パス、相対パス、ルートパスって何?
  5. Tableau

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