勝間和代さんのサポートメール(http://www.katsumaweb.com/sample.php)を音声読みあげで聞く用に、読みあげに邪魔な部分を削除するプログラムを作りました。
コピーした状態で実行すると、不要な文字列を削除してクリップボードにコピーする、というものです。
SapomeYomiage.py - 勝間和代のサポートメールからURLと不要な定型文を除去する。
import pyperclip, re
text = str(pyperclip.paste())
ret0 = re.sub(r"^自分コーチング手帳サポートメール.*?月のバックナンバー", "" ,text, flags=(re.MULTILINE | re.DOTALL)) #文頭の不要文字列を除去
ret1 = re.sub(r"(https?|ftp)(:\/\/[-_\.!~*\'()a-zA-Z0-9;\/?:\@&=\+\$,%#]+)", "" ,ret0) #URLの除去
ret2 = re.sub(r"(★サポメ会員の勝間塾への新規入会.*?サポートメールのバックナンバーはこちらからお読みいただけます)","",ret1, flags=(re.MULTILINE | re.DOTALL)) #定型文除去
ret3 = re.sub(r"<<前週翌週>> .*$","",ret2, flags=(re.MULTILINE | re.DOTALL))
pyperclip.copy(ret3)
##苦労したこと
探したい文字列の文頭.*?探したい文字列の末尾
という正規表現にたどり着くのに時間かかりました。
?が非貪欲、という意味になり、最も短くマッチするものを探してくれます。
flags=(re.MULTILINE | re.DOTALL)
という書き方。普通に|で区切って書いたらなぜかうまくいきませんでした。
なかなか楽しかったです。