正規表現とは、いろんな文字列を一つの形式で表現するためのものです。
「正規表現とは」は調べたらいくらでも出てくるので、そちらをご覧ください
#文字や数字
特定の文字はa,b,c,d,e...など
特定の数字は1,2,3,4,5...など
何でもいいけど、とりあえず数字!「1」でも[2]でもいいけど、とりあえず数字を指定したい!っていうときは、「\d」
数字は英語で「digits」なので、digitsの「d」ですね、きっと。
数字以外!「a」でも「b」でもいいけど、とりえず数字以外を指定したい!っていうときは「\D」です。
任意の英数字を表すときは、\wで、
任意の英数字以外の文字を表すときは\Wです。
#ワイルドカード
.(ピリオド)は任意の単一の文字を表します(文字、数字、空白など全て)
でも、任意の単一の文字ではなく、普通にピリオドを使いたい!っていうときは「\ .」
#特定の文字のマッチング
a,b,cのどれか一文字というのは、[abc]と表します。
例えば、
aii
iii
uii
という文字列を全て正規表現で表現しようとすれば、
[aiu]ii
となります。
#特定の文字を除外する
先ほどは特定の文字とマッチングしましたが、逆に特定の文字を除外します。
つまり、「この文字は入れないで」っていう正規表現ですね。
除外する際は「^(ハット)」の記号を使います。
[^abc]とした場合、意味は、aでもbでもcでもない任意の一文字という意味になります。
※排除する意味でのハットは、で使います。^a とすると、この場合ハットは「行頭」を意味します。詳しくは後ほど。
例えば、
aii ※入れたい
iii ※入れたい
uii ※入れたくない
があるとしたら、
[^u]ii
と表せます。
#連続した文字のうちの1文字が一致
連続した文字を表したい場合は、「-(ダッシュ)」を用います。
[0-9]は0から9までの数字のうちの1つを意味します。
[^ad]はaからdまでのうちの1文字以外を意味します。
#文字の繰り返し
中括弧を使用して、文字の繰り返しを表現します。
w{3}は「w」がちょうど3回繰り返している表現にマッチ ⇒ www
w{,3}は「w」が3回までの繰り返しにマッチ ⇒ w, ww, www
w{2,3}は「w」が1回以上3回以下の繰り返しにマッチ ⇒ ww, www
#直前のパターンの繰り返し
直前のパターンを0回以上繰り返しは「*(アスタリスク)」を用います。
さらに、直前のパターンを1回以上繰り返しは「+(プラス)」を用います。
たとえば、
b+ は1つ以上のb
[abc]+ は任意のaかbかcが1つ以上
#直前の文字が0回又は1回
「?(クエスチョンマーク)」は、直前の文字が0回又は一回だけ登場することを意味します。
たとえば、
ab?d は、「abd」もしくは「abbd」にマッチします。
#空白、タブ、改行、キャリッジリターン
正規表現で空白を表現するには、一般的に「\s」で、
空白以外を表現するのは「\S」
他にも、
「 (スペース)」「\t(タブ)」「\n(改行)」「\R(キャリッジリターン)」などがある。
※キャリッジリターンは、カーソルを文頭へ戻すこと示す記号らしいです。
#開始と終了
は「行頭(開始)」を表す際にも使われます。
一方で、「行末(終了)」は$(ドル)を使います。
たとえば、
^abc は abcで始まる文を参照します
abc$ は abcで終わる文を参照します
#ファイル名を取得
例えば、fileから始まって.jpgで終わるファイルがあるとする
「file_kamogawa.jpg」
「file_osaka.jpg」 みたいな。
この場合は、
^(file.+).jpg$
このように書きます。
この丸括弧内の表現は、後で処理するために一時的に記憶できるらしいです。
また、丸かっこで囲まれた部分はひとまとまりと認識されるようです、
#条件(OR)
またはは、「|」で表されます。
cats or dogs とやりたい場合、、、
cats|dogs
でおっけーです!
#その他の特殊文字
単語の境界を「\b」で表します。
例えば、\bday とすると、単語の境界部分から「day」で始まる文字列を参照してくれます。
これに関しては、以下のサイトがおすすめ
単語境界/非単語境界(¥b, ¥B)
#おわり
とりあえず、こんな感じです。