[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'[ァ-ン]'
パターン | 説明 |
---|---|
[ぁ-ん] | 任意のひらがな |
[ァ-ン] | 任意のカタカナ |
[ぁ-んァ-ン] | 任意のひらがなとカタカナ |
[一-龥] | 任意の漢字 |