ロゴ

プログラミング初心者がアプリ開発を目指すブログ

【Python入門】正規表現- Python初心者勉強記030

Pythonで正規表現を行うにはreモジュールを使用します。今回はreモジュールの使い方の基本を見ていきましょう。

reモジュールの使い方

正規表現オブジェクト生成

Pythonの正規表現を使うには、まず文字列パターンをcompileして、正規表現オブジェクトを生成する必要があります。

re.compile(文字列)


>>> import re
>>> pattern = re.compile('[aA]bc')

修飾子

修飾子をcompileの引数として指定することで、正規表現のパターンマッチ判定を変更することができます。
ここでは3つの修飾子を紹介します。

re.I 大文字・小文字を区別しない
re.M “^”は各行の先頭とマッチ、”$”は各行の行末とマッチ
re.S “.”を改行ともマッチさせる

検索を行う

compileメソッドを使って生成した正規表現オブジェクトを使って検索を行うには、serchメソッドを使用します。
検索が成功するとmatchオブジェクトが返され、失敗するとNoneが返されます。

.search(正規表現パターン)


>>> import re
>>> pattern = re.compile('[aA]bc')
>>> pattern.search('Abc') #成功するとmatchオブジェクトが返される
<_sre.SRE_Match object at 0x10de4ba58>

照合

matchメソッドを使うと照合を行うことができます。こちらは、searchメソッドと違い文字列の先頭のみマッチします。

.match(正規表現パターン)


>>> import re
>>> pattern = re.compile('[aA]bc')
>>> pattern.match('abc def')
<_sre.SRE_Match object at 0x10de4bac0>
>>> pattern.match('def abc') #先頭でないので何も返ってこない

置換

subメソッドは、パターンマッチした部分を置換することができます。

.sub(置換後,置換前)


>>> pattern = re.compile('a')
>>> pattern.sub('A','abc')
'Abc'

Unicode文字列での検索

Unicode文字列での検索を行うことができます。

Unicode表を使用して厳密に対応をさせることもできます。

部分一致

groupsメソッドで部分一致を抽出できます。
()で囲んだ部分がグループになります。


>>> pattern = re.compile(r'(\d+)-(\d+)-(\d+)')
>>> result = pattern.serch('090-999-999')
>>> result.groups()
('090', '999', '999')

後方参照

後方参照とは、部分一致内容を直後の置換で利用する機能です。
¥1,¥2…とすることで利用できます。


>>> pattern = re.compile(r'(\d{3})(\d{4})')
>>> pattern.sub(r'\1-\2','1111111')
'111-1111'

正規表現で文字列を分割

splitメソッドは、正規表現で一致した文字列の部分で文字列全体を分割します。


>>> pattern=re.compile(' +')
>>> pattern.split('111 2 3 44 5')
['111', '2', '3', '44', '5']

スポンサード リンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA