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.-txt
logA-txt
- logA0-txt
logB-txt
- logB1-txt
- 検索:
log..-txt
- logA-txt
logA0-txt
- logB-txt
-
logB1-txt
2.2. 指定した文字のどれか1文字にマッチ
- 指定した文字のどれか1文字:
[
abc]
- 検索:
log[AB]-txt
logA-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]-txt
logA-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-txt
log2-txt
log3-txt
-
log9-txt
2.6. 英数字1文字にマッチ
- 英数字1文字:
\w
- 検索:
log\w-txt
logA-txt
logB-txt
log1-txt
log2-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-txt
logA-txt
- logB-txt
- log1-txt
- log2-txt
- tmpA-txt
tmpB-txt
- tmp1-txt
- tmp2-txt
2.13. グループ化
- グループ化:
()
- 検索:
(logA|tmpB)-txt
logA-txt
- logB-txt
- log1-txt
- log2-txt
- tmpA-txt
tmpB-txt
- tmp1-txt
- tmp2-txt
2.14. 行の先頭にマッチ
- 行の先頭:
^
- 検索:
^sample
-
sample
01 -
sample
02 -
sample
03 - 01sample
- 02sample
- 03sample
-
2.15. 行の末尾にマッチ
- 行の末尾:
$
- 検索:
sample$
- sample01
- sample02
- sample03
- 01
sample
- 02
sample
- 03
sample
2.16. 直前の文字の0回以上の繰り返しにマッチ
- 直前の文字の0回以上の繰り返し:
*
- 検索:
loga*
log
loga
-
log
b logaaaa
-
log
bbbb
- 検索:
".*"
- Server
"WebServer"
- WebServer
""
"DBServer"
- DBServer
- 検索:
(DB)*Server
Server
DBServer
DBDBServer
DBDBDBServer
DBDBDBDBServer
- DBDDServer
2.17. 直前の文字の1回以上の繰り返しにマッチ
- 直前の文字の0回以上の繰り返し:
+
- 検索:
loga+
- log
loga
- logb
logaaaa
- logbbbb
- 検索:
".+"
- Server
"WebServer"
- WebServer
- ""
"DBServer"
- DBServer
- 検索:
(DB)+Server
- Server
DBServer
DBDBServer
DBDBDBServer
DBDBDBDBServer
- 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.txt
log1234.txt
- log12345.txt
2.21. 直前の文字があってもなくてもマッチ
- 直前の文字があってもなくてもマッチ:
?
- 検索:
https?
http
https
- 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歳の太郎さん
以上