【问题标题】:Python Search and Replace regex for large filePython搜索和替换大文件的正则表达式
【发布时间】:2014-09-16 17:54:52
【问题描述】:

在python中使用正则表达式列表搜索和替换1GB文件中的一些特殊字符

def myreplace(text, dic):
    for i, j in dic.iteritems():
    text = text.replace(i, j)
    return text 

rep={"&":"and","-":"",'?':''}

achive=map(lambda x: myreplace(x, rep), achive) 

目前在 1 GB 的测试文件中性能很好。想知道是否有可能使这个表现更好。在 NLTK 中是否有更好的方法来做到这一点?

【问题讨论】:

  • 每个字符是否映射到唯一的替换?否则,您可以让 ([put all your chars in here]) 类查找替换。
  • 是的,每个字符都映射为唯一的替换,例如 &-and。该列表最多可达到 100 个
  • myreplace()replace_all()一样吗?
  • 是的,它们都是一样的,我已经更正了

标签: python regex nltk


【解决方案1】:

对需要删除的两个单个字符使用翻译可能更快,并且只替换一个 & 符号。这样你只解析字符串两次而不是三次。

achive = achive.translate(None, '-?').replace('&', 'and')

【讨论】:

  • 是的,这看起来可行。是否有 hack 可以将替换列表扩大到 100 个以上?
猜你喜欢
  • 2010-10-30
  • 1970-01-01
  • 2015-05-31
  • 2022-06-10
  • 1970-01-01
  • 2013-06-14
  • 2011-04-15
  • 1970-01-01
相关资源
最近更新 更多