Pythonの正規表現まとめ
文字 | 内容 | マッチする例 |
---|---|---|
. | 改行以外の任意の文字にマッチ | t.naka t●naka |
^ | 文字列の先頭とマッチ | ^ta ta●●●... |
$ | 文字列の末尾、または文字列の末尾の改行の直前にマッチ | ka$ ...●●●ka |
* | 直前の要素を任意の個数(0個以上)続けたものにマッチ。 | ab* a, ab, abbbb... |
+ | 直前の要素を任意の個数(1個以上)続けたものにマッチ。 | ab+ ab, abbbb... 注: a とはマッチしない。 |
? | 直前の要素を0回か1回繰り返すものにマッチ。 | ab? a, ab |
[ ] | 文字の集合を指定するのに使用 | [abc] aかbかc [a-z] 英小文字 [a-zA-Z0-9] 英数字 t[ao]naka tanakaとtonaka |
| | AかBどちらかにマッチ。 | A|B AかB |
*? +? ?? |
'*' 、 '+' 、 '?' などは、すべて貪欲マッチ(=できるだけ多くのテキストにマッチする。greedy match) だが、最小マッチさせたい場合はそれぞれに?をつける。 | <.*> '<H1>title</H1>'全文にマッチ。 <.*?> <H1>だけにマッチ。 |
{m} | 直前の要素のm回繰り返してたらマッチ | a{3} aaa |
{m,n} | 直前の要素のn~m回繰り返してたらマッチ | a{1,3} a, aa, aaa |
\d | 任意の十進数とマッチ。 [0-9] と同意。 |
|
\D | 、任意の非数字文字とマッチ。 [^0-9] と同意。 |
|
\s | 任意の空白文字とマッチ。 [\t\n\r\f\v] と同意。 |
|
\S | 任意の非空白文字とマッチ。 [^\t\n\r\f\v] と同意。 |
|
\w | 任意の英数文字および下線とマッチ。 [a-zA-Z0-9_] と同意。 |
|
\W | 任意の非英数文字とマッチ。 [^a-zA-Z0-9_] と同意。 |