正規表現ってなに? - 市場価値を高めるための新人向けオリエンテーション第5回 -
こんばんは。
広告の管理画面や、効果計測ツールのデータを分析するときに、データを整形したり、見やすい形に変換したりするシーンがあります。
そんなときに正規表現を知っていて使うことができれば、作業の効率アップになります。
既に正規表現知ってるよ。使っているよ。という人は読み飛ばしてください。正規表現ってなに?という人はぜひこちらの記事で理解してもらえたらうれしいです。
正規表現ってなに?
正規表現とはテキストの指定を、あいまいにできる表現や言語のようなものを指します。
普通の検索とは何が違うのか?という疑問もあると思いますので普通の検索や指定と正規表現での指定や検索との違いを見ていきましょう。
普通の検索の場合
「あいうえお」という文字列に対して、
あいうえお
というテキストを指定や検索します。
※普通ですね。
正規表現の場合
「あいうえお」という文字列に対して、
あから始まるテキスト
というあいまいな指定や検索ができます。
普通の検索の場合も正規表現のあいまいな検索でもどちらも「あいうえお」という文字列がヒットします。
具体的な例で見てみる
あらかぶがだくさんつれた
あじのなめろう
いしもち
いさきはかわをあぶるとおいしい
うまずらはぎのきもはゆどうししてたべる
うきがしずむときがすき
えらをきってちぬきをする
えいはよこにはしる
おおにべはさーふでつれる
おおきなさかなをつりたい
このようなテキストたちがあったときの例を見ていきます。
通常の検索の例
「あじのなめろう」と指定して検索すると「あにのなめろう」が見つかります。「いしもち」と検索すれば、「いしもち」が見つかります。
完全に一致するテキストや、指定したテキストをダイレクトに検索するのが普通な検索です。
正規表現の検索の例
正規表現の検索では、通常の検索よりもう少しあいまいな指定で検索ができます。
例えば、「おお」ではじまるテキストを検索することができます。
このときもちろん、
おおにべはさーふでつれる
おおきなさかなをつりたい
この2つのテキストが見つかります。通常の検索よりも広いパターン且つ自由度の高い検索が可能になります。
実際にエディターでやってみる
実際に上記の例を検索してみます。
われわれエンジニアではないビジネスサイドの人間が正規表現を使うときは、エディターを利用することがほとんどだと思います。
多くのテキストエディターには正規表現を使った検索や置換ができる機能が備わっていると思うので試してみてください。
今回は、sakuraエディターを使ってやってみます。
検索windowで、条件に下記テキストを入力します。
※正規表現で検索するときは、正規表現にチェックを入れるのをわすれずに!
^おお.*
これで検索をすると
このように、「おお」ではじまるテキストの検索ができます。
正規表現の例を解説
^おお.*
今回実際に使ったこちらの正規表現を解説していきます。
^ (読み:ハット)
こちらは、行の先頭を表す正規表現です。
おお
これは、行の先頭のあと何で始まるテキストを検索するか?のテキスト部分です。
. (読み:ドット)
任意の1文字を表す正規表現です。
任意なのでこの「.」のあとに続く物によって検索対象が変わります。
* (読み:アスタリスク)
直前の文字が0回以上繰り返すよ。という正規表現です。
今回は、直前が「.」なので任意の1文字が0回以上繰り返しているもの。
が検索対象になります。
まとめると、
^おお.*
先頭が「おお」ではじまる任意の1文字が0回以上繰り返すテキストパターンが検索対象としてヒット(マッチ)する正規表現ということになります。
今回は、比較的簡単な例を紹介しましたが、このような正規表現の基礎を理解することで複雑な検索条件も作ることができます。
まずは、「正規表現」+やりたいこと or 検索したい条件でgoogle検索して見ると沢山の先人たちの正規表現の事例が出てくるので、そのパターンを使ってみる。ところから初めて見ると良いかなと思います。
今回は、正規表現についてざっくり触れてみました。
正規表現=エンジニアがやるもの。
というイメージを持つ人もいるかも知れませんが、非エンジニアの方もきちんと理解して使えるようになることで仕事の効率がびっくりするほど上がるシーンが沢山あると思います。
ぜひ積極的に正規表現を使ってもらいたいです。