[python3] 短縮系や日本語対応など正規表現まとめ一覧

Posted on 2019/03/27 in programming , Updated on: 2019/03/30

正規表現のパターン

正規表現はいくつかの特別な文字「メタ文字」と呼ばれる文字を組み合わせて表現する。メタ文字は特別な意味をもっており、以下のような文字が存在する。

メタ文字 説明 マッチする例 マッチしない例
. 任意の一文字 a.c abc, aac abbc, accc
^ 文字列の先頭 ^abc abcdef defabc
$ 文字列の末尾 abc$ defabc abcdef
* 0回以上の繰り返し ab* a, abb, abbb aa, bb
+ 1回以上の繰り返し ab+ ab, abb, abbb a, aa, bb
? 0回または1回 ab? a, ab abb
{m} m回の繰り返し a{3} aaa aa, aaaa
{m,n} m〜n回の繰り返し a{2, 4} aa, aaa, aaaa a, aaaaa
[] 集合 [a-c] a, b, c d, e, f
| or a|b a, b c, d
() グループ化 (abc)+ abc, abcabc a, ab, abcd

短縮形

[0-9]は、0~9の数字を表すが、下記表のように[0-9]を\dで表すような短縮した表現もある。

短縮形 説明 同義のパターン
\d 任意の数字 [0-9]
\D 任意の数字以外 [^0-9]
\s 任意の空白文字 [\t\n\r\f\v]
\S 任意の空白文字以外 [^\t\n\r\f\v]
\w 任意の英数字と'_' [a-xA-Z0-9_]
\W 任意の英数字と'_'以外 [\a-xA-Z0-9_]
\A 文字列の先頭 ^
\Z 文字列の末尾 $

日本語を扱う

Python の正規表現で日本語を扱う場合は、正規表現パターンを Unicode に変換して使用する。やり方は、正規表現の前にuを付ける。

japanese_regex = u'[ァ-ン]'
パターン 説明
[ぁ-ん] 任意のひらがな
[ァ-ン] 任意のカタカナ
[ぁ-んァ-ン] 任意のひらがなとカタカナ
[一-龥] 任意の漢字