Python - 更好地处理多个 str.replace 调用?

标签 python string replace

我经常发现自己在大量文本中徘徊,提取术语或以其他方式清理内容,因此我重新使用字符串作为文件名等。

在最近的一次任务中,我从网站上抓取了几百个pdf文件,并希望使用文章标题作为文件名来帮助同事 checkin 文件。

我可以从html中获取标题,但标题中经常使用非法的win O/S字符(例如 :"> 等),这意味着我必须做一些替换确保我可以使用这个标题。

由于上述原因,我开始使用这行代码:-

fname = art_number+" "+content_title.replace(":", " -").replace("&#8211;", "-").replace(u'\xae', "-").replace("\"", "").replace("?","").replace("<i>", "").replace("</i>", "").replace("/", " ").replace("<sup>-< sup>", "-")
正如你所看到的。成堆的str.replace ,不太可读或易于管理。

每个替换通常都是手动考虑的,我不想将它们扔到代码簿中,因为我想查找和检查每组内容通常有一些细微差别。

您对此有何看法?

最佳答案

对于单字符替换,我会使用 unicode.translate

对于较长的字符串,我将构建一个由前导两个字符索引的可能替换的字典,然后逐步遍历字符串,仅测试每个位置的可能替换。

关于Python - 更好地处理多个 str.replace 调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20382758/

相关文章:

regex - vim 中分隔符之间的数字递增

python - 可选择替换子字符串 python

Python Django 模型执行连接查询

python:如何根据两个不同的键对复杂列表进行排序

python - 在 Pyspark 中读取和保存图像文件

python - 如何在无服务器中与 Python 正确共享代码?

string - 确定变量是字符串还是数字字符串的 FoxPro 函数

java - 在 Java 中切换字符串的第一个和最后一个字母?

c - 提取 HTTP post 数据

将 NA 替换为 R 中的上一行和下一行平均值