正規表現を勉強中なので、正規表現の基本についてまとめてみた。
この手のまとめはいろんな人が書いているので、自分用として。
記号 | 意味 | パターン例 | パターン文字列 | 結果 |
---|---|---|---|---|
^ | 先頭にマッチする | "^abcd" | "abcde" "aaade" |
true false |
$ | 末尾にマッチする | "abcd$" | "aaaabcd" "aaadesd" |
true false |
. | 任意の1文字にマッチする | "1.3" | "123" "333" |
true false |
* | 直前の文字が0個以上にマッチする | "A*" | "" "A" "AA" "AAA" "D" |
true true true false |
? | 直前の文字が0個または1個にマッチする | "A?" | "" "A" "AA" |
true true false |
+ | 直前の文字が1個以上にマッチする | "A+" | "" "A" "AA" |
false true true |
\d | 半角数値(0~9)にマッチする。[0-9]と同じ。 | "\d" | "0" "0" "a" |
true false false |
\D | 半角数値(0~9)以外にマッチする。[^0-9]と同じ。 | "\D" | "0" "0" "a" |
false true true |
\w | 半角英数値(0~9、a~z、A~Z、_)にマッチする。[0-9a-zA-Z_]と同じ。 | \w | "0" "0" "#" |
true false false |
\W | 半角英数値(0~9、a~z、A~Z、_)以外にマッチする。 [^0-9a-zA-Z_]と同じ。 | \W | "0" "0" "#" |
false true false |
[ ] | いずれかの文字とマッチする。 | "[ABCDE]" | "B" "E" "F" |
true true false |
( ) | 1つのまとまりとして扱う。 | "ABCDE" | "ABCDE" "BCDEF" |
true false |
{n} | 直前の文字にn回マッチする。 | "A{5}" | "AAAAA" "AAAA" |
true false |
{n,} | 直前の文字にn回以上マッチする。 | "A{5,}" | "AAAAA" "AAAAAA" "AAAA" |
true true false |
{n,m} | 直前の文字にn回以上m回以下マッチする。 | "B{5,6}" | "BBBBB" "BBBBBB" "BBBB" |
true true false |
| | いずれかとマッチする。 | "AAA|BBB" | "AAA" "BBB" "ZZZ" |
true true false |
- | 範囲を指定する。 | "[2-3]" | "2" "4" |
true false |
^ | 否定。 | "^[2-3]" | "2" "4" |
false true |
&& | かつ。 | "[2-3]&&3" | "2" "3" "4" |
false true false |
\ | 直後のメタ文字をエスケープ。 | "\\" | "\" "" |
true false |
\s | 空白1文字。 | "\s" | " " "" |
true false |
\S | 空白文字以外。 | "\S" | " " "A" |
false true |
\n | 改行。 | "\n" | " " "A" |
true false |
\t | タブ。 | "\t" | "" "A" |
true false |
よく使うパターン
意味 | パターン例 |
---|---|
郵便番号 | /^[0-9]{3}-[0-9]{4}$/ |
電話番号 | /^[0-9]{2,4}-[0-9]{2,4}-[0-9]{3,4}$/ |
Emailアドレス | |^[0-9a-z_./?-]+@([0-9a-z-]+\.)+[0-9a-z-]+$| |