本記事は、株式会社ギックスの運営していた分析情報サイト graffe/グラーフ より移設されました(2019/7/1)
データの中から「電話番号」だけを抜き出したい
本日は「正規表現」という言葉を解説します。みなさんがパソコンでデータを見たり変更したりする時に「文字の検索」を行う事も多いと思います。その際に「電話番号を探したい」と思った時にどうしていらっしゃるでしょうか?「-」を検索することも有効ですが、郵便番号などの意図しない文字も検索されてきて困ったことはないでしょうか?そんなときに正規表現を利用する事によって作業を効率的に進めることができます。正規表現はデータの中からパターンにマッチするデータを見つけ出す手法として非常に有効なのです。
テキストエディタを使って実際に正規表現を体験する
今回はテキストエディタとして「サクラエディタ」を利用します。
例えば以下のようなCSVデータがあったとします。正規表現を用いてここから「電話番号」のデータだけを検索してみましょう。
[メニュー]から[検索]を選択します。
ここで検索の条件を入力します。まず入力欄「条件」に「0\d{1,4}-\d{1,4}-\d{4}」と入力してください。この文字列が「電話番号の正規表現」になるのです。次に画面中央部のチェックボックス「正規表現」をチェックONにしてください。入力ができたらボタン「下検索」を押してみましょう。
いかがでしょうか?電話番号の部分だけが検索一致箇所として強調されているのがお分かりいただけると思います。
上記の説明で、
「電話番号の正規表現」は「0\d{1,4}-\d{1,4}-\d{4}」です
ともうしあげましたが、この意味を説明させてください。上記の「\」「d」「{」「}」などは「メタ文字」と呼ばれる正規表現を構成する文字で、この文字一つ一つが「文字のパターン」を表わしているのです。この例では、
0 | ← | メタ文字ではありません。ただの「0」です | |
\d | ← | メタ文字です。0から9の数字であることを表現します | |
{1,4} | ← | メタ文字です。ここでは直前の文字が1回~4回繰り返されていることを表現します | |
– | ← | メタ文字ではありません。ただの「-」です | |
\d | ← | メタ文字です。0から9の数字であることを表現します | |
{1,4} | ← | メタ文字です。ここでは直前の文字が1回~4回繰り返されていることを表現します | |
– | ← | メタ文字ではありません。ただの「-」です | |
\d | ← | メタ文字です。0から9の数字であることを表現します | |
{4} | ← | メタ文字です。ここでは直前の文字が4回繰り返されていることを表現します |
となっており、これらが結合された総意として「電話番号と思われる文字のパターン」を表わしているのです。
今回の例の他にも「メールアドレスの正規表現」「郵便番号の正規表現」など多数の正規表現が存在します。またそれらはサンプルとしてインターネット上に公開されています。ご興味のある方は「メールアドレス 正規表現」等で検索を行ってみてください。
ここで最後に「正規表現」をWikipediaで見ると
正規表現(regular expression)とは、文字列の集合を一つの文字列で表現する方法の一つである。
出典:Wikipedia:正規表現
と掲載されています。ここまでの説明をお読みくださったみなさんにはお分かりいただけると思います。上記の例を用いるならば、「電話番号のパターンにマッチする文字列のグループ」を「一つの文字列で表現する」したい時には「0\d{1,4}-\d{1,4}-\d{4}」という正規表現で表現できる。という事なのです。