【问题标题】:Removing blocks of text with python使用python删除文本块
【发布时间】:2012-02-17 15:30:49
【问题描述】:

我正在尝试使用 python 从文件中删除大块文本。每个文本块都以

开头

/translation="SOMETEXT"

以第二个引号结束。

谁能给我一些关于如何做到这一点的建议?

谢谢

【问题讨论】:

  • 使用正则表达式。我不太喜欢这些,但这只是对正确方向的提示。
  • 试试 re 模块,使用一些正则表达式测试器,它会使测试更容易 (ksamuel.pythonanywhere.com)。

标签: python


【解决方案1】:

你可以像这样使用 re.sub:

import re
re.sub("/translation=\".*?\" ", "", s)

【讨论】:

    【解决方案2】:
    【解决方案3】:

    如果性能无关紧要,您可以这样做。正则表达式可能会更快,但这更简单。

    def remtxt(s,startstr,endstr):
            while startstr in s:
                    startpos=s.index(startstr)
                    try:
                            endpos=s.index(endstr,startpos+len(startstr))+len(endstr)
                    except:
                            return
                    s=s[:startpos]+s[endpos:]
            return s
    
    new_string=remtxt(my_string,'/translation="','"')
    

    【讨论】:

      猜你喜欢
      • 2011-10-20
      • 2019-03-30
      • 2022-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-07
      • 1970-01-01
      • 2014-04-07
      相关资源
      最近更新 更多