アプリなどを開発するブログ

React Native / Swift / Ruby on Railsなどの学習メモ。


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_] と同意。