General imageGeneral

正規表現

初回作成: 最終更新:

参考サイト・ツール

チートシート

Anchors

文字意味
^行の先頭
$行の末尾
\b単語の境界
\B単語以外の境界

Character Classes

文字意味
\d数字
\D数字以外
\w単語構成文字
\W非単語構成文字
\s空白文字
\S非空白文字
\xhhhh(2桁の16進数)コードからなる文字
\uhhhhhhhh(4桁の16進数)コードからなる文字

Special Characters

文字意味
\次の文字を特別に扱うこと、「エスケープ」することを示す
\n改行文字
\rキャリッジリターン文字
\t水平タブ
\v垂直タブ
[\b]バックスペース

Ranges/Groups

文字意味
.改行文字を除く任意の1文字
x|yxまたはy
(x)キャプチャグループ
(x:?)非キャプチャグループ
[xyz]囲んだ文字のいずれかに一致(x or y or z
[^xyz]囲んだ文字のいずれにも一致しない(Not x or y or z
[a-c]囲んだ文字の範囲内の文字に一致(アルファベット小文字ac
e.g.
 [A-Q]: アルファベット大文字AQ
 [0-4]: 数字14
[^a-c]囲んだ文字の範囲外の文字に一致(アルファベット小文字ac以外)
\nn番目の括弧の部分に一致した最新の部分文字列への後方参照(n: 正の整数)

Assertions

文字意味
x(?=y)先読みアサーション
xの後にyが続く場合のみxに一致
x(?!y)否定先読みアサーション
xの後にyが続いていない場合のみxに一致
(?<=y)x後読みアサーション
xの前にyがある場合のみxに一致
(?<!y)x否定後読みアサーション
xの前にyがない場合のみxに一致

Quantifiers

文字意味
*0回以上の繰り返し
*?0回以上の繰り返し(ℹ️非貪欲)
+1回以上の繰り返し
+?1回以上の繰り返し(ℹ️非貪欲)
?0回か1回の出現
??0回か1回の出現(ℹ️非貪欲)
{n}n回の繰り返し(n:正の整数)
{n}?n回の繰り返し(n:正の整数)(ℹ️非貪欲)
{n,}n回以上の繰り返し(n:正の整数)
{n,}?n回以上の繰り返し(n:正の整数)(ℹ️非貪欲)
{n,m}n回以上m回以下の繰り返し(n >= 0かつn < mかつm:正の整数)
{n,m}?n回以上m回以下の繰り返し(n >= 0かつn < mかつm:正の整数)(ℹ️非貪欲)

ℹ️非貪欲

既定では*+といった数量詞は「貪欲」、つまり、できる限り多くの文字列に一致しようとする。
数量詞の後に?の文字を指定すると、数量詞が「非貪欲」、つまり、一致が見つかるとすぐに停止する。

  • some <foo> <bar> new </bar> </foo> thing
    • /<.*>/<foo> <bar> new </bar> </foo>に一致
    • /<.*?>/<foo>に一致

サンプル

汎用

説明正規表現ダイアグラム
郵便番号\d{3}-\d{4}zip-code
郵便番号(-の省略を許容)\d{3}-?\d{4}zip-code_optional-hyphen
携帯電話番号0[7-9]0(?:-\d{4}){2}mobile-phone-number
携帯電話番号(-の省略を許容)0[7-9]0(-?)\d{4}\1\d{4}mobile-phone-number_optional-hyphen
メールアドレス[a-zA-Z0-9_.+-]+@([a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]*\.)+[a-zA-Z]{2,}https://regexper.com/#[a-zA-Z0-9_.%2B-]%2B%40([a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]*\.)%2B[a-zA-Z]{2%2C}

日時

説明正規表現ダイアグラム
yyyy/mm/ddもしくはyyyy-mm-dd形式の日付\d{4}([\/-])(?:0[1-9]|1[0-2])\1(?:0[1-9]|[12]\d|3[01])date
時間(?:2[0-3]|[01]\d)(?::(?:[0-5]\d)){2}time

IT

説明正規表現ダイアグラム
IPアドレス((25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)\.){3}(25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)https://regexper.com/#((25[0-5]|2[0-4]\d|1\d{2}|[1-9]%3F\d)\.){3}(25[0-5]|2[0-4]\d|1\d{2}|[1-9]%3F\d)
URLhttps?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)https://regexper.com/#https%3F%3A\%2F\%2F(www\.)%3F[-a-zA-Z0-9%40%3A%25._\%2B~%23%3D]{1%2C256}\.[a-zA-Z0-9()]{1%2C6}\b([-a-zA-Z0-9()%40%3A%25_\%2B.~%23%3F%26%2F%2F%3D]*)