Pythonでは、文字列から特定のパターンに一致する部分を抽出するために正規表現を使用することができます。特に、括弧()
で囲まれた部分を抽出する場合には、re
モジュールのfindall
関数やsearch
関数を使用します。
以下に、基本的な使用例を示します。
import re
# 入力文字列
s = 'this is *sample string* for _extracting substring_.'
# アスタリスク(*)で囲まれた部分を抽出するパターン
p = r'\*(.*?)\*'
# パターンに一致する部分を全て抽出
r = re.findall(p, s)
print(r) # 出力: ['sample string']
このコードでは、アスタリスク*
で囲まれた部分を抽出しています。正規表現のパターンr'\*(.*?)\*'
では、*
はエスケープされ、.
は任意の一文字、*?
は最小マッチを表しています。
また、複数の種類の括弧で囲まれた部分を抽出する場合には、以下のようにパターンを指定します。
# アスタリスク(*)またはアンダースコア(_)で囲まれた部分を抽出するパターン
p = r'\*(.*?)\*|_(.*?)_'
# パターンに一致する部分を全て抽出
r = re.findall(p, s)
print(r) # 出力: [('sample string', ''), ('', 'extracting substring')]
このコードでは、アスタリスク*
またはアンダースコア_
で囲まれた部分を抽出しています。正規表現のパターンr'\*(.*?)\*|_(.*?)_'
では、|
はORを表しています。
以上がPythonで文字列から括弧で囲まれた部分を抽出する基本的な方法です。これを応用することで、様々な文字列処理を行うことができます。