1. 主な正規表現の一覧
| No | 正規表現 | 内容 |
|---|---|---|
| 1 | . |
何か1文字にマッチ |
| 2 |
[abc]
|
このどれか1文字にマッチ |
| 3 |
[^abc]
|
これ以外の1文字にマッチ |
| 4 |
[a-c]
|
この範囲の1文字にマッチ |
| 5 | \d |
数字1文字にマッチ |
| 6 | \w |
英数字1文字にマッチ |
| 7 | \s |
スペース(スペース、タブ、改行)にマッチ |
| 8 | \t |
タブにマッチ |
| 9 | \r |
改行(CR(16進数:0x0D、10進数:13))にマッチ |
| 10 | \n |
改行(LF(16進数:0x0A、10進数:10))にマッチ |
| 11 | \ |
メタ文字 . * + ? \ | ^ $ [ ] ( ) { } のエスケープ |
| 12 | word1|word2 |
どれかの単語にマッチ |
| 13 | () |
グループ化でまとめる |
| 14 | ^ |
先頭にある文字にマッチ |
| 15 | $ |
末尾にある文字にマッチ |
| 16 | x*
|
直前の文字の 0 回以上繰り返す文字にマッチ |
| 17 | x+
|
直前の文字の 1 回以上繰り返す文字にマッチ |
| 18 | x{n}
|
直前の文字を n 回繰り返す文字にマッチ |
| 19 | x{n,}
|
直前の文字を n 回以上繰り返す文字にマッチ |
| 20 | x{m,n}
|
直前の文字を m ~ n 回以上繰り返す文字にマッチ |
| 21 | x?
|
直前の文字があってもなくてもマッチ |
| 22 | *? |
最短マッチ |
| 23 |
(ab)\1
|
(ab) でマッチしたものを \1 の位置でもう一度マッチ |
| 24 | m(?=x)
|
後ろに x がついているときだけ、m でマッチ(先読み) |
| 25 |
(?<=x)m |
前に x がついているときだけ、m でマッチ(後読み) |
| 26 | m(?!x)
|
後ろに x 以外がついているときだけ、m でマッチ(否定的先読み) |
| 27 |
(?<!x)m |
前に x 以外がついているときだけ、m でマッチ(否定的後読み) |
2. 正規表現の使用例
2.1. 何か1文字にマッチ
- 任意の文字:
.
- 検索:
log.-txtlogA-txt- logA0-txt
logB-txt- logB1-txt
- 検索:
log..-txt- logA-txt
logA0-txt- logB-txt
-
logB1-txt
2.2. 指定した文字のどれか1文字にマッチ
- 指定した文字のどれか1文字:
[abc]
- 検索:
log[AB]-txtlogA-txt- logA0-txt
logB-txt- logB1-txt
- logC-txt
- logC1-txt
2.3. 指定した文字以外の1文字にマッチ
- 指定した文字以外の1文字:
[^abc]
- 検索:
log[^AB]-txt- logA-txt
- logA0-txt
- logB-txt
- logB1-txt
logC-txt- logC1-txt
2.4. 指定した範囲の1文字にマッチ
- 指定した範囲の1文字:
[a-c]
- 検索:
log[A-B]-txtlogA-txt- logA0-txt
logB-txt- logB1-txt
logC-txt- logC1-txt
- logD-txt
- logD1-txt
2.5. 数字1文字にマッチ
- 数字1文字:
\d
- 検索:
log\d-txt- logA-txt
- logB-txt
- logC-txt
log1-txtlog2-txtlog3-txt-
log9-txt
2.6. 英数字1文字にマッチ
- 英数字1文字:
\w
- 検索:
log\w-txtlogA-txtlogB-txtlog1-txtlog2-txt- logA1-txt
- logB2-txt
2.7. スペース(スペース、タブ、改行)にマッチ
- スペース(スペース、タブ、改行):
\s
2.8. タブにマッチ
- タブ:
\t
2.9. 改行(CR(16進数:0x0D、10進数:13))にマッチ
- 改行(CR(16進数:0x0D、10進数:13)):
\r
2.10. 改行(LF(16進数:0x0A、10進数:10))にマッチ
- 改行(LF(16進数:0x0A、10進数:10)):
\n
2.11. メタ文字のエスケープ
- メタ文字:
. * + ? \ | ^ $ [ ] ( ) { } - エスケープ文字:
\
- 検索:
log\.-txt- logA-txt
- logB-txt
- log1-txt
- log2-txt
-
log.-txt
2.12. どれかの単語にマッチ
- どれかの単語:word1
|word2
- 検索:
logA-txt|tmpB-txtlogA-txt- logB-txt
- log1-txt
- log2-txt
- tmpA-txt
tmpB-txt- tmp1-txt
- tmp2-txt
2.13. グループ化
- グループ化:
()
- 検索:
(logA|tmpB)-txtlogA-txt- logB-txt
- log1-txt
- log2-txt
- tmpA-txt
tmpB-txt- tmp1-txt
- tmp2-txt
2.14. 行の先頭にマッチ
- 行の先頭:
^
- 検索:
^sample-
sample01 -
sample02 -
sample03 - 01sample
- 02sample
- 03sample
-
2.15. 行の末尾にマッチ
- 行の末尾:
$
- 検索:
sample$- sample01
- sample02
- sample03
- 01
sample - 02
sample - 03
sample
2.16. 直前の文字の0回以上の繰り返しにマッチ
- 直前の文字の0回以上の繰り返し:
*
- 検索:
loga*logloga-
logb logaaaa-
logbbbb
- 検索:
".*"- Server
"WebServer"- WebServer
"""DBServer"- DBServer
- 検索:
(DB)*ServerServerDBServerDBDBServerDBDBDBServerDBDBDBDBServer- DBDDServer
2.17. 直前の文字の1回以上の繰り返しにマッチ
- 直前の文字の0回以上の繰り返し:
+
- 検索:
loga+- log
loga- logb
logaaaa- logbbbb
- 検索:
".+"- Server
"WebServer"- WebServer
- ""
"DBServer"- DBServer
- 検索:
(DB)+Server- Server
DBServerDBDBServerDBDBDBServerDBDBDBDBServer- DBDDServer
2.18. 直前の文字のn回の繰り返しにマッチ
- 直前の文字のn回の繰り返し:
{n}
- 検索:
log\d{4}\.txt- log1.txt
- log12.txt
- log123.txt
log1234.txt- log12345.txt
2.19. 直前の文字のn回以上の繰り返しにマッチ
- 直前の文字のn回以上の繰り返し:
{n,}
- 検索:
log\d{4,}\.txt- log1.txt
- log12.txt
- log123.txt
log1234.txt-
log12345.txt
2.20. 直前の文字のm~n回の繰り返しにマッチ
- 直前の文字のm~n回の繰り返し:
{m,n}
- 検索:
log\d{3,4}\.txt- log1.txt
- log12.txt
log123.txtlog1234.txt- log12345.txt
2.21. 直前の文字があってもなくてもマッチ
- 直前の文字があってもなくてもマッチ:
?
- 検索:
https?httphttps- ftp
- ftps
2.22. 最短マッチ
- 最短マッチ:
*?
- 検索:
<*?>-
<h1>見出し1</h1> -
<h2>見出し2</h2> -
<h3>見出し3(これは<b>見出し</b>です)</h3>
-
- 検索:
<?>※最短マッチを使用しない場合<h1>見出し1</h1><h2>見出し2</h2>-
<h3>見出し3(これは<b>見出し</b>です)</h3>
2.23. マッチした部分をもう一度マッチ
-
(ab)でマッチしたものを\1の位置でもう一度マッチ:(ab)\1
- 検索:
(\d{4})年にこの問題が起こりました。\1年記載- 2023年にこの問題が起こりました。2025年記載
- 2024年にこの問題が起こりました。2025年記載
-
2025年にこの問題が起こりました。2025年記載
2.24. 先読みマッチ
- 後ろに
xがついているときだけ、mでマッチする:m(?=x)
- 検索:
\d+(?=年)- 第40回
- 令和
7年 - 西暦
2015年 - 500円
2.25. 後読みマッチ
- 前に
xがついているときだけ、mでマッチする:(?<=x)m
- 検索:
(?<=西暦)\d+- 第40回
- 令和7年
- 西暦
2015年 - 500円
2.26. 否定的先読みマッチ
- 後ろに
x以外がついているときだけ、mでマッチする:m(?!x)
- 検索:
\d+(?!.*年)- 第
40回 - 令和7年
- 西暦
2015年 -
500円
- 第
2.27. 否定的後読みマッチ
- 前に
x以外がついているときだけ、mでマッチする:(?<!x)m
- 検索:
(?<!昭和)\d{2}- 明治
20年 - 大正
10年 - 昭和60年
- 平成
25年 - 令和
05年
- 明治
3. Replacement group reference(置換用キャプチャグループ参照)
置換用キャプチャグループ参照を使用すると、正規表現で()で囲って抽出した部分(キャプチャグループ)を、置換時に再利用することができます。
\1 または S1
|
|
|---|---|
\1 または $1
|
1番目のキャプチャ()を参照 |
\2 または $2
|
2番目のキャプチャ()を参照 |
\3 または $3
|
2番目のキャプチャ()を参照 |
| ~ | ~ |
\0 または $0サクラエディタでは $&
|
全体のマッチ |
使用例は以下の通りです。
置換前のテキスト
名前: 太郎, 年齢: 30
- 検索(正規表現):
名前: (.+), 年齢: (\d+) - 置換:
$2歳の$1さん
置換後のテキスト
30歳の太郎さん
以上