正規表現

記述例
/pattern/flags
pattern
文字クラス
.改行文字(\n、\r、\u2028、あるいは、\u2029)を除いたあらゆる 1 文字にマッチする。
\d数字にマッチする。[0-9] と同じ
\D数字以外の文字にマッチする。[^0-9] と同じ
\wアンダースコアとアルファベットと数字にマッチする。[A-Za-z0-9_] と同じ
\Wアンダースコアとアルファベットと数字以外の文字にマッチする。[^A-Za-z0-9_] と同じ
\sスペース、タブ、改ページ、改行、その他のユニコードでのスペースを含む空白文字 1 文字にマッチする。
[ \f\n\r\t\v\u00A0\u1680\u180E\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF] と同じ
\Sスペース、タブ、改ページ、改行、その他のユニコードでのスペースを含む空白文字以外の 1 文字にマッチする。
[^ \f\n\r\t\v\u00A0\u1680\u180E\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF] と同じ
\t水平タブにマッチする。
\r復帰(CR)にマッチする。
\n改行(LF)にマッチする。
\v垂直タブにマッチする。
\f改ページにマッチする。
[\b]バックスペースにマッチする。
\0NUL 文字にマッチする。
\cXcontrol-X にマッチする(X には A - Z のどれか 1 文字が入る)。
\xhh2桁の 16進数 hh で表される文字にマッチする。
\uhhhh4桁の 16進数 hhhh で表される UTF-16 の文字にマッチする。
\xx が特殊な意味を持つ文字のとき、本来の x という文字で使用したいとき指定する。
例えば、/a*/ は 0個以上の a を意味するが、それを a* という文字列として使用したいとき /a\*/ のように指定する。
文字集合
[xyz][ ] で囲まれた文字の中のどの 1 文字にもマッチする(ただし、3文字で真中が - のときは、範囲を表す)。
[a-e][ ] で囲まれた文字で、- を挟む3文字の場合は範囲を表し、範囲中のどの 1 文字にもマッチする。
[a-e] は [abcde] と同じ
[^xyz][ ] で囲まれた文字以外のどの 1 文字にもマッチする(ただし、3文字で真中が - のときは、範囲を表す)。
[^a-e][ ] で囲まれた文字で、- を挟む3文字の場合は範囲を表し、範囲外のどの 1 文字にもマッチする。
[^a-e] は [^abcde] と同じ
代替
x|yx またはy にマッチする。
境界
^x先頭の x にマッチする。
x$終端の x にマッチする。
\b文字とスペースの間のような、幅が 0 の 単語の区切りにマッチする。
例えば、\bon は "on the phone" の前側の on にマッチする。
\B2 つの文字の間や 2 つのスペースの間のような、幅が 0 の単語の区切りではない部分にマッチする。
例えば、\Bon は "on the phone" の後側の on にマッチする。
グループ化および後方参照
(x)x にマッチし、マッチしたものをキャプチャグループに記憶する。
\n正規表現内で n 番目の括弧でくくられた部分に該当する部分文字列を示す。
例えば、/a(,)b\1/ は "a,b,c,d" の a,b, にマッチする。
(?:x)x にマッチするが、マッチしたものはキャプチャグループに記憶しない。
量指定子
x*0 個以上のx にマッチする。
x+1 個以上のx にマッチする。
x?1 個以下のx にマッチする。
x{n}n 個のx にマッチする。/x{3}/ は /xxx/ と同じ
x{n,}n 個以上のx にマッチする。
x{n,m}nm 個のx にマッチする。
x*?
x+?
x??
x{n}?
x{n,}?
x{n,m}?
マッチする範囲が複数考えられる場合、最小の範囲にマッチする。
例えば、<span>~</span> に対して、/<.*>/ は、<span>~</span> 全体にマッチするが、
/<.*?>/ は、<span> にマッチする。
アサーション
x(?=y)x に続いて y が現れる場合にのみ、x にマッチする。
x(?!y)x に続いて y が現れない場合にのみ、x にマッチする。
(?<=w)xx の前に w が現れる場合にのみ、x にマッチする。
(?<!w)xx の前に w が現れない場合にのみ、x にマッチする。
flag
文字意味
g最初にマッチした1回だけでなく、複数回マッチする。
i大文字・小文字の違いを無視してマッチする。
m先頭および終端を示す文字 (^ や $) が、全体の先頭や終端ではなく、各行の先頭や終端にマッチする。