ブログ

正規表現について

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

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

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

  2. ブログ

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

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

  3. ブログ

    ページ作成ツール"Marketo"を使ってみて。

    こんにちは!インターン生の山田です。今回は、"Marketo"につい…

  4. ブログ

    東南アジアのデジタルマーケティング

    こんにちは!インターン生の山本です!今回は、現在私が調…

  5. ブログ

    夏休みのまとめ

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

  6. ブログ

    "Marketo"を使ってみて。パート2

    こんにちは!インターン生の山田です。前回に引き続き、今回は"Mark…

コメント

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

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

CAPTCHA


カテゴリ
最近の記事
  1. Adobe WebSDK クロスドメイン計測【第2部】FPI…
  2. Adobe WebSDK クロスドメイン計測【第1部】ECI…
  3. Adobe Target Recommendations:g…
  4. Conversational Analytics APIでお…
  5. Looker Studioで日付フィルターの開始日・終了日の…
  1. Data Clean Room

    忘年会シーズンに「DCRごっこ」のご提案
  2. 海外情報

    【TC19ブログ】Tableau Conference 2019 3日目レポート…
  3. IT用語集

    仮想マシン(VM)って何?
  4. Cortex

    Cortex Analystを使ってみた
  5. YOTTAA

    YOTTAA:新機能「Anomaly AI」のご紹介
PAGE TOP