Pythonは、その強力な標準ライブラリと豊富なサードパーティライブラリにより、多くのタスクを簡単にこなすことができます。その中でも、re
モジュールとjson
モジュールは、テキスト処理とデータ解析において非常に有用です。
reモジュールとは
Pythonのre
モジュールは、正規表現を扱うためのモジュールです。正規表現は、文字列のパターンマッチングに使用され、テキストデータの検索、置換、分割などに利用されます。
re.match関数
re.match
関数は、指定したパターンが文字列の先頭でマッチするかどうかを調べるために使われます。マッチが成功した場合には、テキストに関する情報を含むマッチオブジェクトを返します。
import re
pattern = r"hello"
text = "hello, world!"
match = re.match(pattern, text)
if match:
print("マッチが成功しました!")
matched_text = match.group() # マッチしたテキストを取得
match_start = match.start() # マッチの開始位置を取得
match_end = match.end() # マッチの終了位置を取得
print("マッチしたテキスト:", matched_text)
print("マッチの開始位置:", match_start)
print("マッチの終了位置:", match_end)
else:
print("マッチが失敗しました。")
JSONとPython
Pythonのjson
モジュールは、JSON形式のデータを扱うためのモジュールです。JSONはJavaScript Object Notationの略で、データ交換フォーマットの一つです。
JSONデータのパース
PythonでJSONデータをパースするには、json.loads
関数を使用します。
import json
json_data = '{"name": "John", "age": 30, "city": "New York"}'
python_obj = json.loads(json_data)
print(python_obj["name"]) # Prints 'John'
JSONと正規表現を組み合わせる
Pythonのre
モジュールとjson
モジュールを組み合わせることで、JSON形式のデータを含むテキストから特定のデータを抽出することが可能です。
import re
import json
def json_from_s(s):
match = re.findall(r"{.+[:,].+}|[.+ :].+]", s)
return json.loads(match) if match else None
この関数json_from_s
は、文字列s
からJSONオブジェクトまたは配列を抽出し、それをPythonのオブジェクトに変換します。正規表現{.+[:,].+}|[.+ :].+]
は、JSONオブジェクト({...}
)または配列([...]
)をマッチします。
以上が、PythonでJSONと正規表現を扱う基本的な方法です。これらの知識を活用して、より複雑なテキスト処理やデータ解析タスクに挑戦してみてください。