HOME
正規表現についてのチートシートです。正規表現の書き方を忘れた場合にご活用ください。
文字 | 説明 | 正規表現の例 | マッチする例 |
---|---|---|---|
. | 任意の1文字 にマッチします。 | . | A あ |
+ | 直前の文字が 1回以上 繰り返す場合にマッチします。 最長一致。条件に合う最長の部分に一致します。 | go+gle | gogle |
* | 直前の文字が 0回以上 繰り返す場合にマッチします。 最長一致。条件に合う最長の部分に一致します。 | go*gle | ggle |
? | 直前の文字が 0個か1個 の場合にマッチします。 最長一致。条件に合う最長の部分に一致します。 | go?gle | ggle |
+? | 直前の文字が 1回以上 繰り返す場合にマッチします。 最短一致。条件に合う最短の部分に一致します。 | go+?gle | gogle |
*? | 直前の文字が 0回以上 繰り返す場合にマッチします。 最短一致。条件に合う最短の部分に一致します。 | go*?gle | ggle |
?? | 直前の文字が 0個か1個 の場合にマッチします。 最短一致。条件に合う最短の部分に一致します。 | go??gle | ggle |
| | いずれかの条件 (OR条件) として使われます。 | goog(le|ol) | google |
\ | 直後の正規表現記号を エスケープ します。 | go\+gle | go+gle |
[...] | 角括弧に含まれるいずれか1文字にマッチします。 | [abc] | a, b, c |
[^...] | 角括弧に含まれる文字以外にマッチします。 | [^abc] | a, b, c 以外の文字 |
(...) | 文字を1つのグループにまとめることができます。 | goog(le|ol) | google |
{n} | 直前の文字の桁数を指定できます。 | a{3} | aaa |
{n,} | 直前の文字の最小桁数のみ指定できます。 | a{3,} | aaa |
{n,m} | 直前の文字の最小桁数と最大桁数を指定できます。 最長一致。条件に合う最長の部分に一致します。 | a{3,4} | aaa |
{n,m}? | 直前の文字の最小桁数と最大桁数を指定できます。 最短一致。条件に合う最短の部分に一致します。 | a{3,4}? | aaa |
文字 | 説明 | 対応する表現 |
---|---|---|
\t | タブ | (なし) |
\r | 改行。CR(Carriage Return:0x0D) | (なし) |
\n | 改行。LF(Line Feed:0x0A) | (なし) |
\d | すべての数字 | [0-9] |
\D | すべての数字以外の文字 | [^0-9] |
\s | 垂直タブ以外のすべての空白文字 | [ \t\f\r\n] |
\S | すべての非空白文字 | [^ \t\f\r\n] |
\w | アルファベット、アンダーバー、数字 | [a-zA-Z_0-9] |
\W | アルファベット、アンダーバー、数字以外の文字 | [^a-zA-Z_0-9] |
文字 | 説明 | 正規表現の例 | マッチする例 |
---|---|---|---|
^ | 直後の文字が行の 先頭 にある場合にマッチします。 | ^google | google... |
$ | 直前の文字が行の 末尾 にある場合にマッチします。 | google$ | ...google |
\< | 単語の先頭にマッチします。 | \< | *google |
\> | 単語の末尾にマッチします。 | \> | google* |
\b | 単語の先頭か末尾にマッチします。 | \b | *google* |
\B | 単語の先頭か末尾以外にマッチします。 | \B | google |
\A | ファイルの先頭にマッチします。 | \A | (なし) |
\z | ファイルの末尾にマッチします。 | \z | (なし) |
\G | 直前の一致文字列の末尾にマッチします。 | \G | (なし) |
文字 | 説明 |
---|---|
\0 | 一致した文字列全体に置換します。 |
\1 ~ \9 | 一致した文字列の1~9番目に対応する文字列に置換します。 |
\l | 次の1文字を小文字に変換します。 |
\L...\E | 挟まれた文字列を小文字に変換します。 |
\u | 次の1文字を大文字に変換します。 |
\U...\E | 挟まれた文字列を大文字に変換します。 |
a.z
メタ文字 | 説明 |
---|---|
. | 任意の 1 文字。文字の種類には関係なく 1 文字に該当します。 |
a.*z
メタ文字 | 説明 |
---|---|
. | 任意の 1 文字。文字の種類には関係なく 1 文字に該当します。 |
* | 直前のパターンを 0 回以上繰り返し。 |
a.+z
メタ文字 | 説明 |
---|---|
. | 任意の 1 文字。文字の種類には関係なく 1 文字に該当します。 |
+ | 直前のパターンを 1 回以上繰り返し。 |
\d
メタ文字 | 説明 |
---|---|
\d | 半角数字。それぞれ 1 文字ずつヒットします。 |
\D
メタ文字 | 説明 |
---|---|
\D | 半角数字以外。スペースも含めそれぞれ 1 文字ずつヒットします。 |
\d{4}
メタ文字 | 説明 |
---|---|
\d | 半角数字。それぞれ 1 文字ずつヒットします。 |
{n} | 直前のパターンを n 回繰り返し。 |
\d{4,}
メタ文字 | 説明 |
---|---|
\d | 半角数字。それぞれ 1 文字ずつヒットします。 |
{n,} | 直前のパターンを n 回以上繰り返し。 |
\d{1,4}
メタ文字 | 説明 |
---|---|
\d | 半角数字。それぞれ 1 文字ずつヒットします。 |
{n,m} | 直前のパターンを n ~ m 回以上繰り返し。最長一致なので、4 桁の数字列に優先してヒットします。 |
\d{4,10}
メタ文字 | 説明 |
---|---|
\d | 半角数字。それぞれ 1 文字ずつヒットします。 |
{n,m} | 直前のパターンを n ~ m 回以上繰り返し。最長一致なので、4 桁の数字列に優先してヒットします。 |
\d{4,10}?
メタ文字 | 説明 |
---|---|
\d | 半角数字。それぞれ 1 文字ずつヒットします。 |
{n,m} | 直前のパターンを n ~ m 回以上繰り返し。最長一致なので、4 桁の数字列に優先してヒットします。 |
? | 直前の繰り返し指定を最短一致にする。できるだけ短い文字列にヒットしようとします。 |
\b\d{1,3}(,\d{3})*\b
メタ文字 | 説明 |
---|---|
\b | 語の区切り文字。 |
\d | 半角数字。それぞれ 1 文字ずつヒットします。 |
{n,m} | 直前のパターンを n ~ m 回以上繰り返し。最長一致なので、4 桁の数字列に優先してヒットします。 |
{n} | 直前のパターンを n 回繰り返し。 |
* | 直前のパターンを 0 回以上繰り返し。 |
\u
メタ文字 | 説明 |
---|---|
\u | 半角英大文字。 |
\U
メタ文字 | 説明 |
---|---|
\U | 半角英大文字以外。 |
\l
メタ文字 | 説明 |
---|---|
\l | 半角英小文字。 |
\L
メタ文字 | 説明 |
---|---|
\L | 半角英小文字以外。 |
[\u\l]
メタ文字 | 説明 |
---|---|
[ ] | 括弧内のいずれか 1 文字。 |
\u | 半角英大文字。 |
\l | 半角英小文字。 |
[^\u\l]
メタ文字 | 説明 |
---|---|
[^ ] | 括弧内に含まれない 1 文字。 |
\u | 半角英大文字。 |
\l | 半角英小文字。 |
\b[\u\l]+\b
メタ文字 | 説明 |
---|---|
\b | 語の区切り文字。 |
[ ] | 括弧内のいずれか 1 文字。 |
\u | 半角英大文字。 |
\l | 半角英小文字。 |
+ | 直前のパターンを 1 回以上繰り返し。 |
[02468]
メタ文字 | 説明 |
---|---|
[ ] | 括弧内のいずれか 1 文字。 |
\d*[02468]\b
メタ文字 | 説明 |
---|---|
\d | 半角数字。それぞれ 1 文字ずつヒットします。 |
* | 直前のパターンを 0 回以上繰り返し。 |
[ ] | 括弧内のいずれか 1 文字。 |
\b | 語の区切り文字。 |
[13579]
メタ文字 | 説明 |
---|---|
[ ] | 括弧内のいずれか 1 文字。 |
\d*[13579]\b
メタ文字 | 説明 |
---|---|
\d | 半角数字。それぞれ 1 文字ずつヒットします。 |
* | 直前のパターンを 0 回以上繰り返し。 |
[ ] | 括弧内のいずれか 1 文字。 |
\b | 語の区切り文字。 |
[3-7]
メタ文字 | 説明 |
---|---|
[ ] | 括弧内のいずれか 1 文字。 |
- | [ ] 内でのみ指定できる範囲指定のメタ文字。 |
[0-9A-Fa-f]
メタ文字 | 説明 |
---|---|
[ ] | 括弧内のいずれか 1 文字。 |
- | [ ] 内でのみ指定できる範囲指定のメタ文字。 |
[0-9]
メタ文字 | 説明 |
---|---|
[ ] | 括弧内のいずれか 1 文字。 |
- | [ ] 内でのみ指定できる範囲指定のメタ文字。 |
[A-Z]
メタ文字 | 説明 |
---|---|
[ ] | 括弧内のいずれか 1 文字。 |
- | [ ] 内でのみ指定できる範囲指定のメタ文字。 |
[ぁ-ん]
メタ文字 | 説明 |
---|---|
[ ] | 括弧内のいずれか 1 文字。 |
- | [ ] 内でのみ指定できる範囲指定のメタ文字。 |
[ァ-ヴ]
メタ文字 | 説明 |
---|---|
[ ] | 括弧内のいずれか 1 文字。 |
- | [ ] 内でのみ指定できる範囲指定のメタ文字。 |
[ヲ-゚]
メタ文字 | 説明 |
---|---|
[ ] | 括弧内のいずれか 1 文字。 |
- | [ ] 内でのみ指定できる範囲指定のメタ文字。 |
\n
メタ文字 | 説明 |
---|---|
\n | 改行文字。CRLF 改行、LF 改行にもヒットします |
\s
メタ文字 | 説明 |
---|---|
\s | 空白文字。半角スペース、タブ、改行文字のいずれかにヒットします(全角スペースにはヒットしません)。 |
東京|大阪
メタ文字 | 説明 |
---|---|
| | OR 条件。A または B。 |
^
メタ文字 | 説明 |
---|---|
^ | 行頭(ウィンドウ幅などで折り返した表示上の行頭は含まない)。 |
$
メタ文字 | 説明 |
---|---|
$ | 行末(ウィンドウ幅などで折り返した表示上の行末は含まない)。 |
^\n
メタ文字 | 説明 |
---|---|
^ | 行頭(ウィンドウ幅などで折り返した表示上の行頭は含まない)。 |
\n | 改行文字。CRLF 改行、LF 改行にもヒットします |
^.*$
メタ文字 | 説明 |
---|---|
^ | 行頭(ウィンドウ幅などで折り返した表示上の行頭は含まない)。 |
. | 任意の 1 文字。文字の種類には関係なく 1 文字に該当します。 |
* | 直前のパターンを 0 回以上繰り返し。 |
$ | 行末(ウィンドウ幅などで折り返した表示上の行末は含まない)。 |
^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
^https?://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$
^[a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9]\.[a-zA-Z-]{2,}$
^0\d(-\d{4}|\d-\d{3}|\d\d-\d\d|\d{3}-\d)-\d{4}$
^0[789]0-\d{4}-\d{4}$
^050-\d{4}-\d{4}$
^(0120|0800)-\d{3}-\d{3}$
^\d{4}-\d\d-\d\d$
^\d{3}-\d{4}$
JavaScript
var regex = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
regex.test("murashun@gmail.com");
Python
#!/usr/bin/env python
import re
rep = r'^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$'
email = 'murashun@gmail.com'
is_email = re.match(rep, email) is not None
print(isEmail);
Java
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
public static void main(String[] args) {
String regex = "^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$";
String email = "murashun@gmail.com";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(email);
Boolean isEmail = matcher.matches();
System.out.println(isEmail);
}
}
Ruby
#!/usr/bin/env ruby
rep = /\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/
isEmail = rep =~ "murashun@gmail.com"
puts isEmail
Perl
#!/usr/bin/env perl
$rep = '^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$';
$email = 'murashun@gmail.com';
if ($email =~ /$rep/) {
print "valid";
} else {
print "invalid";
}
/i
/o
/x
/m
.
が改行にもマッチします。/g
/e
正規表現についてのチートシートです。正規表現の書き方を忘れた場合にご活用ください。