基礎入門編と置換処理編で正規表現について説明しました。ここではこれまでに登場した正規表現を整理してまとめています。一部登場していないものも含まれています。
正規表現について詳しく知りたい方には「詳説 正規表現」(通称フクロウ本)がお勧めです。
文字列ではなく位置にマッチする正規表現です。前方一致や後方一致を実現する時に使います。
| 正規表現 | 説明 |
|---|---|
| ^ | 行頭 |
| $ | 行末 |
| /b | 単語境界 |
| /B | 単語境界以外 |
どれか1文字を選ぶ時に使います。
| 正規表現 | 説明 |
|---|---|
| [012] | 0、1、2のいずれか |
| [0-9] | 0から9のいずれか(数字1文字) |
| [^0-9] | 0から9以外の1文字(数字以外の1文字) |
略記法という便利な書き方もあります。ただし、環境によってマッチする文字が変わりますので注意してください。
| 略記法 | 同等の表記 | 説明 |
|---|---|---|
| \d | [0-9] | 数字 |
| \D | [^0-9] | 非数字 |
| \s | [ \f\n\r\t\v] | 空白文字 |
| \S | [^ \f\n\r\t\v] | 非空白文字 |
| \w | [a-zA-Z0-9_] | 単語構成文字 |
| \W | [^a-zA-Z0-9_] | 非単語構成文字 |
ピリオドは任意の1文字を表します。
| 正規表現 | 説明 |
|---|---|
| . | 任意の1文字 |
同じ文字や文字列、あるいはパターンを繰り返す時に使います。
| 正規表現 | 説明 |
|---|---|
| {m,n} | m回以上n回以下の繰り返し |
| {m,} | m回以上の繰り返し |
| {m} | m回の繰り返し |
よく使われるパターンについては記号が割り当てられています。
| 記号 | 同等の表記 | 説明 |
|---|---|---|
| * | {0,} | 0回以上の繰り返し |
| + | {1,} | 1回以上の繰り返し |
| ? | {0,1} | 0回または1回 |
繰り返し回数をできるだけ少なくする指定です。
| 正規表現 | 説明 |
|---|---|
| {m,n}? | m回以上n回以下の繰り返し(非欲張り) |
| {m,}? | m回以上の繰り返し(非欲張り) |
| *? | 0回以上の繰り返し(非欲張り) |
| +? | 1回以上の繰り返し(非欲張り) |
| ?? | 0回または1回(非欲張り) |
繰り返し回数をできるだけ多くする指定です。
| 正規表現 | 説明 |
|---|---|
| {m,n}+ | m回以上n回以下の繰り返し(強欲) |
| {m,}+ | m回以上の繰り返し(強欲) |
| *+ | 0回以上の繰り返し(強欲) |
| ++ | 1回以上の繰り返し(強欲) |
| ?+ | 0回または1回(強欲) |
前または後ろにある文字列の指定です。
| 正規表現 | 説明 |
|---|---|
| (?<=……) | 肯定戻り読み |
| (?<!……) | 否定戻り読み |
| (?=……) | 肯定先読み |
| (?!……) | 否定先読み |
[関連]
前にマッチしたものと同じものにマッチします。
| 正規表現 | 説明 |
|---|---|
| \1 | 一つ目の括弧の中身と同じ内容 |
| \2 | 二つ目の括弧の中身と同じ内容 |
ここでは書きませんが、3以上の数字も使えます。
[関連]