今回は正規表現とは何か、また、よく使う正規表現をいくつかご紹介したいと思います。
CONTENTS
正規表現とは
正規表現とは、いくつかの文字列を一つの形式で表現するための記法のことで、例えば「たいよう」や「たいやき」などの文字列があった際、この後紹介するメタキャラクターなどを使用して「「たい」から始まる文字列」という一つの形式として記述することが出来ます。
この記法はプログラムを書く際などに使われますが、テキストエディタで検索したり、文字列を置換する際などにも使用できるため覚えておくと便利です。
メタキャラクターとは
メタキャラクターとは、本来の意味とは異なる意味や役割を持った文字の事です。
例えば、「?」など、本来は疑問符として使うものですが、メタキャラクターでは、「直前の文字列の一個以上の文字と一致」という意味になります。
いくつかの正規表現
それでは実際にいくつか正規表現をご紹介していきたいと思います。
行頭を表す「^」
正規表現ではメタキャラクターの「^」を使用して、行頭を記述します。
例えば以下の文字列があった際
海老
烏賊
海月
正規表現で「^海」と検索すると「海」から始まる文字列という意味となり、結果以下が該当します。
海老
海月
行末を表す「$」
今度は上記の逆で正規表現でメタキャラクターの「$」を使用して、行末を記述します。
例えば以下の文字列があった際
水牛
蝸牛
牛乳
正規表現で「牛$」と検索すると「牛」で終わる文字列という意味となり、結果以下が該当します。
水牛
蝸牛
任意の一文字を表す「.」
正規表現で任意の一文字を表したいときはメタキャラクターの「.」を使って記述します。
例えば以下の文字列があった際
青い海
青い空
青い地球
正規表現で「青い.」と検索すると「青い+任意の一文字」という意味となり、結果以下が該当します。
青い海
青い空
青い地
上記で「青い地球」が「青い地」となるのは「.」が任意の一文字だからです。
「青い地球」という結果を出したい場合、「青い..」と検索すると該当しますが、この場合任意の二文字となるため「青い海」や「青い空」は該当しなくなります。
同じ文字の繰り返しを表す
正規表現で同じ文字の繰り返しを表す方法はいくつかあります。
直前の文字の0個以上の繰り返しを表す「*」
正規表現ではメタキャラクターの「*」を使用して、直前の文字の0個以上の繰り返しを記述します。
例えば以下の文字列があった際
あう
あいう
あいいう
あいいいう
正規表現で「あい*う」と検索すると「い」を0回以上繰り返している文字列という意味となり、結果上記すべてが該当します。
直前の文字の1個以上の繰り返しを表す「+」
正規表現ではメタキャラクターの「+」を使用して、直前の文字の1個以上の繰り返しを記述します。
例えば以下の文字列があった際
あう
あいう
あいいう
あいいいう
正規表現で「あい+う」と検索すると「い」を1回以上繰り返している文字列という意味となり、結果以下が該当します。
あいう
あいいう
あいいいう
直前の文字の1個以下の繰り返しを表す「?」
正規表現ではメタキャラクターの「?」を使用して、直前の文字の1個以下の繰り返しを記述します。
例えば以下の文字列があった際
あう
あいう
あいいう
あいいいう
正規表現で「あい?う」と検索すると「い」を1回以下繰り返している文字列という意味となり、結果以下が該当します。
あう
あいう
まとめ
今回、数ある正規表現のうちの数点を紹介させて頂きました。
正規表現は今回のような簡単なものから、メタキャラクターを複数個使用した記述方法など様々なものがあります。
初めはよくわからず混乱することもあるかもしれませんが、慣れてくると複数の文字列から自分が望む結果のみを表示、置換させることが出来るため、知っておくと便利だと思いました。