正規表現一覧

基本的な正規表現

基本的な正規表現
文字 説明 正規表現の例 マッチする例
. 任意の1文字 にマッチします。 .
+ 直前の文字が 1回以上 繰り返す場合にマッチします。
最長一致。条件に合う最長の部分に一致します。
go+gle gogle
go...gle
* 直前の文字が 0回以上 繰り返す場合にマッチします。
最長一致。条件に合う最長の部分に一致します。
go*gle ggle
go...gle
? 直前の文字が 0個か1個 の場合にマッチします。
最長一致。条件に合う最長の部分に一致します。
go?gle ggle
gogle
+? 直前の文字が 1回以上 繰り返す場合にマッチします。
最短一致。条件に合う最短の部分に一致します。
go+?gle gogle
go...gle
*? 直前の文字が 0回以上 繰り返す場合にマッチします。
最短一致。条件に合う最短の部分に一致します。
go*?gle ggle
go...gle
?? 直前の文字が 0個か1個 の場合にマッチします。
最短一致。条件に合う最短の部分に一致します。
go??gle ggle
gogle
| いずれかの条件 (OR条件) として使われます。 goog(le|ol) google
googol
\ 直後の正規表現記号を エスケープ します。 go\+gle go+gle
[...] 角括弧に含まれるいずれか1文字にマッチします。 [abc]
[a-c]
a, b, c
[^...] 角括弧に含まれる文字以外にマッチします。 [^abc]
[^a-c]
a, b, c
以外の文字
(...) 文字を1つのグループにまとめることができます。 goog(le|ol) google
googol
{n} 直前の文字の桁数を指定できます。 a{3} aaa
{n,} 直前の文字の最小桁数のみ指定できます。 a{3,} aaa
aaaa...
{n,m} 直前の文字の最小桁数と最大桁数を指定できます。
最長一致。条件に合う最長の部分に一致します。
a{3,4} aaa
aaaa
{n,m}? 直前の文字の最小桁数と最大桁数を指定できます。
最短一致。条件に合う最短の部分に一致します。
a{3,4}? aaa
aaaa
定義済みの正規表現
文字 説明 対応する表現
\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 で終わる 3 桁の文字列
  1. a.z
メタ文字 説明
. 任意の 1 文字。文字の種類には関係なく 1 文字に該当します。
a から始まって z で終わる 2 桁以上の文字列
  1. a.*z
メタ文字 説明
. 任意の 1 文字。文字の種類には関係なく 1 文字に該当します。
* 直前のパターンを 0 回以上繰り返し。
a から始まって z で終わる 3 桁以上の文字列
  1. a.+z
メタ文字 説明
. 任意の 1 文字。文字の種類には関係なく 1 文字に該当します。
+ 直前のパターンを 1 回以上繰り返し。
半角数字
  1. \d
メタ文字 説明
\d 半角数字。それぞれ 1 文字ずつヒットします。
半角数字以外
  1. \D
メタ文字 説明
\D 半角数字以外。スペースも含めそれぞれ 1 文字ずつヒットします。
4 桁の半角数字
  1. \d{4}
メタ文字 説明
\d 半角数字。それぞれ 1 文字ずつヒットします。
{n} 直前のパターンを n 回繰り返し。
4 桁以上の半角数字
  1. \d{4,}
メタ文字 説明
\d 半角数字。それぞれ 1 文字ずつヒットします。
{n,} 直前のパターンを n 回以上繰り返し。
1 ~ 4 桁の半角数字
  1. \d{1,4}
メタ文字 説明
\d 半角数字。それぞれ 1 文字ずつヒットします。
{n,m} 直前のパターンを n ~ m 回以上繰り返し。最長一致なので、4 桁の数字列に優先してヒットします。
4 ~ 10 桁の半角数字 (最長一致)
  1. \d{4,10}
メタ文字 説明
\d 半角数字。それぞれ 1 文字ずつヒットします。
{n,m} 直前のパターンを n ~ m 回以上繰り返し。最長一致なので、4 桁の数字列に優先してヒットします。
4 ~ 10 桁の半角数字 (最短一致)
  1. \d{4,10}?
メタ文字 説明
\d 半角数字。それぞれ 1 文字ずつヒットします。
{n,m} 直前のパターンを n ~ m 回以上繰り返し。最長一致なので、4 桁の数字列に優先してヒットします。
? 直前の繰り返し指定を最短一致にする。できるだけ短い文字列にヒットしようとします。
桁区切りのカンマ付数字列
  1. \b\d{1,3}(,\d{3})*\b
メタ文字 説明
\b 語の区切り文字。
\d 半角数字。それぞれ 1 文字ずつヒットします。
{n,m} 直前のパターンを n ~ m 回以上繰り返し。最長一致なので、4 桁の数字列に優先してヒットします。
{n} 直前のパターンを n 回繰り返し。
* 直前のパターンを 0 回以上繰り返し。
半角英大文字
  1. \u
メタ文字 説明
\u 半角英大文字。
半角英大文字
  1. \U
メタ文字 説明
\U 半角英大文字以外。
半角英小文字
  1. \l
メタ文字 説明
\l 半角英小文字。
半角英小文字以外
  1. \L
メタ文字 説明
\L 半角英小文字以外。
半角英文字
  1. [\u\l]
メタ文字 説明
[ ] 括弧内のいずれか 1 文字。
\u 半角英大文字。
\l 半角英小文字。
半角英文字以外
  1. [^\u\l]
メタ文字 説明
[^ ] 括弧内に含まれない 1 文字。
\u 半角英大文字。
\l 半角英小文字。
英単語(半角英文字列)
  1. \b[\u\l]+\b
メタ文字 説明
\b 語の区切り文字。
[ ] 括弧内のいずれか 1 文字。
\u 半角英大文字。
\l 半角英小文字。
+ 直前のパターンを 1 回以上繰り返し。
1 桁の偶数
  1. [02468]
メタ文字 説明
[ ] 括弧内のいずれか 1 文字。
1 桁以上の偶数
  1. \d*[02468]\b
メタ文字 説明
\d 半角数字。それぞれ 1 文字ずつヒットします。
* 直前のパターンを 0 回以上繰り返し。
[ ] 括弧内のいずれか 1 文字。
\b 語の区切り文字。
1 桁の奇数
  1. [13579]
メタ文字 説明
[ ] 括弧内のいずれか 1 文字。
1 桁以上の奇数
  1. \d*[13579]\b
メタ文字 説明
\d 半角数字。それぞれ 1 文字ずつヒットします。
* 直前のパターンを 0 回以上繰り返し。
[ ] 括弧内のいずれか 1 文字。
\b 語の区切り文字。
3 ~ 7 までの数字
  1. [3-7]
メタ文字 説明
[ ] 括弧内のいずれか 1 文字。
- [ ] 内でのみ指定できる範囲指定のメタ文字。
1 桁の 16 進数
  1. [0-9A-Fa-f]
メタ文字 説明
[ ] 括弧内のいずれか 1 文字。
- [ ] 内でのみ指定できる範囲指定のメタ文字。
1 桁の全角数字
  1. [0-9]
メタ文字 説明
[ ] 括弧内のいずれか 1 文字。
- [ ] 内でのみ指定できる範囲指定のメタ文字。
1 桁の全角英字
  1. [A-Z]
メタ文字 説明
[ ] 括弧内のいずれか 1 文字。
- [ ] 内でのみ指定できる範囲指定のメタ文字。
ひらがな
  1. [ぁ-ん]
メタ文字 説明
[ ] 括弧内のいずれか 1 文字。
- [ ] 内でのみ指定できる範囲指定のメタ文字。
カタカナ
  1. [ァ-ヴ]
メタ文字 説明
[ ] 括弧内のいずれか 1 文字。
- [ ] 内でのみ指定できる範囲指定のメタ文字。
半角カタカナ
  1. [ヲ-゚]
メタ文字 説明
[ ] 括弧内のいずれか 1 文字。
- [ ] 内でのみ指定できる範囲指定のメタ文字。
改行
  1. \n
メタ文字 説明
\n 改行文字。CRLF 改行、LF 改行にもヒットします
空白文字
  1. \s
メタ文字 説明
\s 空白文字。半角スペース、タブ、改行文字のいずれかにヒットします(全角スペースにはヒットしません)。
OR 条件
  1. 東京|大阪
メタ文字 説明
| OR 条件。A または B。
行頭
  1. ^
メタ文字 説明
^ 行頭(ウィンドウ幅などで折り返した表示上の行頭は含まない)。
行末
  1. $
メタ文字 説明
$ 行末(ウィンドウ幅などで折り返した表示上の行末は含まない)。
空白行
  1. ^\n
メタ文字 説明
^ 行頭(ウィンドウ幅などで折り返した表示上の行頭は含まない)。
\n 改行文字。CRLF 改行、LF 改行にもヒットします
行全体
  1. ^.*$
メタ文字 説明
^ 行頭(ウィンドウ幅などで折り返した表示上の行頭は含まない)。
. 任意の 1 文字。文字の種類には関係なく 1 文字に該当します。
* 直前のパターンを 0 回以上繰り返し。
$ 行末(ウィンドウ幅などで折り返した表示上の行末は含まない)。

使用頻度の高い正規表現式

Email アドレス (RFC準拠ではない)
^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
URL
^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}$
IP 電話番号
^050-\d{4}-\d{4}$
フリーダイヤル
^(0120|0800)-\d{3}-\d{3}$
日付 (YYYY-MM-DD形式)
^\d{4}-\d\d-\d\d$
郵便番号
^\d{3}-\d{4}$

言語別の正規表現一覧

JavaScript

  1. var regex = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
  2. regex.test("murashun@gmail.com");
Javascript の正規表現例

Python

  1. #!/usr/bin/env python
  2. import re
  3. rep = r'^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$'
  4. email = 'murashun@gmail.com'
  5. is_email = re.match(rep, email) is not None
  6. print(isEmail);
Python の正規表現例

Java

  1. import java.util.regex.Matcher;
  2. import java.util.regex.Pattern;
  3. public class Test {
  4. public static void main(String[] args) {
  5. String regex = "^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$";
  6. String email = "murashun@gmail.com";
  7. Pattern pattern = Pattern.compile(regex);
  8. Matcher matcher = pattern.matcher(email);
  9. Boolean isEmail = matcher.matches();
  10. System.out.println(isEmail);
  11. }
  12. }
Java の正規表現例

Ruby

  1. #!/usr/bin/env ruby
  2. rep = /\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/
  3. isEmail = rep =~ "murashun@gmail.com"
  4. puts isEmail
Ruby の正規表現例

Perl

  1. #!/usr/bin/env perl
  2. $rep = '^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$';
  3. $email = 'murashun@gmail.com';
  4. if ($email =~ /$rep/) {
  5. print "valid";
  6. } else {
  7. print "invalid";
  8. }
Perl の正規表現例

修飾子一覧

/i
大文字と小文字を区別しません。
/o
式の展開 (正規表現のコンパイル) を一度だけ行います。
/x
パターンの空白やコメントを無視します。
/m
対象の文字列を複数行として扱います。. が改行にもマッチします。
/g
繰り返しマッチを行います。
/e
置換を行った結果を式として処理します。

参考元:https://murashun.jp/blog/20190215-01.html