手を動かしながら覚える正規表現<リファレンス>

はじめに

基礎入門編置換処理編で正規表現について説明しました。ここではこれまでに登場した正規表現を整理してまとめています。一部登場していないものも含まれています。

正規表現について詳しく知りたい方には「詳説 正規表現」(通称フクロウ本)がお勧めです。

アンカー

文字列ではなく位置にマッチする正規表現です。前方一致や後方一致を実現する時に使います。

正規表現 説明
^ 行頭
$ 行末
/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回(強欲)

前後読み

前または後ろにある文字列の指定です。

正規表現 説明
(?<=……) 肯定戻り読み
(?<!……) 否定戻り読み
(?=……) 肯定先読み
(?!……) 否定先読み

マッチオプション

マッチ動作指定です。

オプション 説明
i 大文字小文字の違いを無視する
g グローバルマッチ

後方参照

前にマッチしたものと同じものにマッチします。

正規表現 説明
\1 一つ目の括弧の中身と同じ内容
\2 二つ目の括弧の中身と同じ内容

ここでは書きませんが、3以上の数字も使えます。

キャプチャなしの括弧

グループ化だけを行い、キャプチャを行わない括弧です。

正規表現 説明
(?:……) キャプチャなしの括弧
スポンサーリンク