スポンサーリンク

[python] 正規表現の使い方

pythonで正規表現を扱うには、reモジュールを使用します。

reモジュールのある関数を使うと、正規表現が一致したかなどのデータが入っている

マッチオブジェクトを戻り値として取得します。

 

match関数 先頭一致

match関数は、正規表現のパターンと、文字列の先頭がマッチしたらその文字列を入れたマッチオブジェクトを返し、そうでないならNoneを返す。

import re

pattern = r"abc"
text = "abcdef"

# textとpatternの先頭が一致すれば、一致した文字列を返す。
# 一致しなければNoneを返す。
matchObject = re.match(pattern , text)

if matchObject:
    # マッチした文字列の取り出し
    print(matchObject.group(0))  # 'abc'

search関数 最初にマッチした文字列

search関数は先頭から見ていき、最初にマッチした文字列をもったマッチオブジェクトを返す。

import re

pattern = r"abc"
text = "/abc/abc/abc/"

# textとpatternの最初にマッチした文字列を返す。
matchObject = re.search(pattern , text)

if matchObject:
    # マッチした文字列の取り出し
    print(matchObject.group(0))  # 'abc'

findall関数 マッチした文字列すべてをリストで返す

findall関数は、マッチした文字列すべてをリストで返します。

import re

pattern = r"/..."
text = "/abc/def/ghi/"


# マッチした文字列すべてをリストで返す
matchList = re.findall(pattern , text)

if matchList:
    for value in matchList:
        print(value)

実行結果

/abc
/def
/ghi