Pythonで正規表現を使ったテキスト処理と、JSONやCSVなどのデータ処理を解説します。ログ解析・データ変換などに必須のスキルです。
正規表現(re モジュール)
import re
text = "IPアドレス: 192.168.1.100, 10.0.0.1"
# パターンにマッチするものを全て取得
ips = re.findall(r"\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}", text)
print(ips) # ['192.168.1.100', '10.0.0.1']
# 置換
new_text = re.sub(r"\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}", "x.x.x.x", text)
print(new_text)
# メールアドレスの検証
email_pattern = r"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$"
is_valid = bool(re.match(email_pattern, "user@example.com"))
print(is_valid) # TrueJSONの読み書き
import json
# PythonオブジェクトをJSONに変換
data = {"name": "Taro", "age": 25, "scores": [90, 85, 92]}
json_str = json.dumps(data, ensure_ascii=False, indent=2)
print(json_str)
# JSONファイルの読み書き
with open("data.json", "w", encoding="utf-8") as f:
json.dump(data, f, ensure_ascii=False, indent=2)
with open("data.json", "r", encoding="utf-8") as f:
loaded = json.load(f)
print(loaded["name"])CSVの読み書き
import csv
# CSV書き込み
with open("output.csv", "w", newline="", encoding="utf-8") as f:
writer = csv.DictWriter(f, fieldnames=["name", "age", "city"])
writer.writeheader()
writer.writerow({"name": "Taro", "age": 25, "city": "Tokyo"})
# CSV読み込み
with open("output.csv", "r", encoding="utf-8") as f:
reader = csv.DictReader(f)
for row in reader:
print(row["name"], row["age"])まとめ
- re.findall()でパターンにマッチする全文字列を取得できる
- json.dumps/loadsでPythonオブジェクトとJSONを相互変換できる
- csv.DictWriter/DictReaderでヘッダー付きCSVを読み書きできる



コメント