【发布时间】:2013-12-21 09:01:14
【问题描述】:
我经常发现自己在大量文本中徘徊,提取术语或以其他方式清理内容,因此我将字符串重新用作文件名等。
在最近的一项任务中,我从一个网站上抓取了几百个 pdf 文件,并想使用文章标题作为文件名,以帮助我的同事检查文件。
我可以从 html 中获取标题,但标题中经常使用非法的 win O/S 字符(例如 :、"、> 等),这意味着我必须做一些替换确保我可以使用标题。
由于上述原因,我开始使用这行代码:-
fname = art_number+" "+content_title.replace(":", " -").replace("–", "-").replace(u'\xae', "-").replace("\"", "").replace("?","").replace("<i>", "").replace("</i>", "").replace("/", " ").replace("<sup>-< sup>", "-")
如您所见。一堆str.replace,可读性和管理性都不是很好。
每个替换项通常都是手动考虑的,我不想将它们扔到代码书中,因为我想要查找和检查的每组内容通常都有一些细微差别。
您对此有何看法?
【问题讨论】:
-
至少考虑建立一个查找表而不是一个大链......并且可能利用
re.sub -
@JonClements 我已经为较大的项目建立了查找 - 这个项目一开始只有两个替换然后弹出。
re.sub的优势是什么?