これは、たまに正規表現を使うけどすぐ忘れてしまう人のメモです。
正規表現の基本については下記の記事を参照。
忘れがちなメタ文字6つ
他言語からの類推が働かず、どれがどれか忘れがちなメタ文字は以下の6つ。
無理やり語呂合わせでおぼえることにする。
メタ文字 | 機能 | 語呂合わせ |
---|---|---|
. | 任意の1文字 | 全てに終止符 |
^ | 行の先頭 | 頭にハット |
$ | 行の末尾 | 最後はカネ |
* | 繰り返し(0文字以上) | ゼロからの米作り |
+ | 繰り返し(1文字以上) | プラスは0を含まない |
? | 繰り返し(0文字か1文字) | 有りや無しや? |
3種類のカッコ
これはまあそんなに混乱しない。
カッコ | 機能 |
---|---|
[ ] | 集合のどれか1文字 |
( ) | 2文字以上をグループ化 |
{ } | 直前の文字の繰り返し回数 |
メタ文字の基本
行の先頭 ^ と行の末尾 $
この2つはセットでおぼえる。
正規表現の 先頭 / 末尾 以外では通常の文字扱いとなることに注意。
直前の文字の繰り返し * + ?
この3つはセットでおぼえる。
* と ? はワイルドカードとは意味が異なることに注意。
エスケープ \
これは他言語でもおなじみ。
2文字以上をグループ化 ( )
これは分かりやすい。
いずれかの文字列 |
これも分かりやすい。
直前の文字の繰り返し回数 { }
{n} は n文字、{n,} は n文字以上、{n,m} は n文字以上m文字以下。