正規表現は覚えていたつもりでも、しばらく使っていなと謎の記号になってしまいます。
なので、ここらでまとめておこうかなと思いました。
- 正規表現で使用する特殊文字(メタ文字)
. ^ $ [ ] * + ? | ( )
※文字として利用する場合は、「¥」でエスケープする。 - 「.」任意の一文字を表す
例)やっぱ.が好き →○「やっぱ海が好き」、○「やっぱ山が好き」、×「やっぱ焼肉が好き」
※並べると複数文字に対応
例)やっぱ..が好き →○「やっぱ焼肉が好き」、○「やっぱ野菜が好き」、×「やっぱ海が好き」 - 「^」先頭のワードを表す
例)^今日は →○「今日はいい天気です。」、×「明日もいい天気です。」 - 「$」最後のワードを表す
例)いい天気です$ →○「今日はいい天気です」、×「今日は雨です。」、×「今日はいい天気ですか」
※「^」と一緒につかうと、そのワードのみを表す。
例)^天気$ →○「天気」、×「今日は良い天気」、×「天気です」 - 「*」直前文字の0回以上の繰り返しを表す
例)お~*っと →○「おっと」、○「お~っと」、○「お~~~~っと」 - 「+」直前文字の1回以上の繰り返しを表す
例)お~+っと →×「おっと」、○「お~っと」、○「お~~~~っと」 - 「?」直前の0又は1文字を表す
例)お~?っと →○「おっと」、○「お~っと」、×「お~~っと」 - 「.*」何でも良いワードを表す
「.」任意の一文字と、「*」直前文字の0回以上の繰り返しの合体技なので、
「任意の文字の繰り返し」を表すようになります。
例)今日は.*良い天気です。 →○「今日は良い天気です。」、○「今日はとっても良い天気です。」
○「今日はすごく良い天気です。」、○「今日は風も無く、暖かくて良い天気です。」 - 「|」いずれかのワードを表す
例)パナソニック|シャープ|ソニー →○「パナソニック」、○「ソニー」、×「Apple」 - 「[]」いずれかの1文字を表す
例)[火木土]曜日は可燃ごみ →○「火曜日は可燃ごみ」、×「月曜日は可燃ごみ」
※「-」(ハイフン)を使って、文字の範囲を指定出来る。
[a-z]、[A-Z]、[0-9]等
[a-g] = [abcdefg]、[0-9] = [0123456789]
※先頭に「^」をつけると除外する文字になる。
例)[^0-9] →○「a」、×「6」
※[ ]の中ではメタ文字は普通の文字として認識されるというルールがあります。
記号を表すときは、エスケープせずに記述します。
例)[.!#$%&’*+/=?^_`{|}~-] とすると、それぞの記号のいずれが1文字となります。 - 「()」グループ化。ワードを1文字として扱える。他のメタ文字と一緒に使う。
例)呼ばれて飛び出て(じゃ)+~ん
→○「呼ばれて飛び出てじゃ~ん」「呼ばれて飛び出てじゃじゃじゃじゃ~ん」
例)ここは(パナソニック|シャープ|ソニー)社です
→○「ここはパナソニック社です」「ここはソニー社です」、×「ここはApple社です」
他にもまだまだ細かいルールはありますが、最低限おさえておくのはこんな所だと思います。