見出し画像

正規表現の後方参照

今日は、『つくってマスターPython』の第4章 “文書を処理する” で学んだことをアウトプットします

金額の最初に「¥」をつける

検索した文字列パターンにマッチした文字列を使って置換することをやってみます。

import re

data = '''
40インチTV  98000円
ノートPC   113000円
スマホ     58700円
タブレット    49500円
'''

result = re.sub(r'(\d+)円', r'¥\1-', data)
print(result)

実行結果は以下のとおり。金額の部分が、「〇〇円」から「¥〇〇-」と変わっています。

40インチTV  ¥98000-
ノートPC   ¥113000-
スマホ     ¥58700-
タブレット    ¥49500-

ここでは、subメソッドを以下のように呼び出しています。

result = re.sub(r'(\d+)円', r'¥\1-', data)
パターンには r'(\d+)円'という値を、置換文字列には「r'¥\1-'」という文字列を指定しています。
パターンの中には、()記号が使われています。この()は、グループを指定するものです。グループは、パターンの中の一部分を指定するのに使われます。r r'(\d+)円'では、(\d+)の部分がグループとして扱われます。
このグループは、置換文字列の中で「\番号」という形で指定することができます。ここでは、r'¥\1-'と置換文字列が指定されていますね。この\1が、第1グループの文字列を示す記号です。r’¥\1-‘は、パターン検索された文字列〇〇をそのまま置換文字列に利用していたのです。
このように、正規表現ではグループで指定された文字列を置換の際に、「\数字」という形で取り出すことができます。これを後方参照といいます。正規表現ではマッチした文字列を再利用できることを覚えておきましょう。

(\d+)が(全部で1個しかないけど)グループ番号でいうところの1番に当たるということなのかな?

サポート、本当にありがとうございます。サポートしていただいた金額は、知的サイドハッスルとして取り組んでいる、個人研究の費用に充てさせていただきますね♪