【问题标题】:Replacing text in Python在 Python 中替换文本
【发布时间】:2010-01-08 04:31:27
【问题描述】:

我一直在查看 re 文档和其他问题,但我一直在使用正则表达式时遇到问题。

我需要从字符串中删除 [tag] 中的内容。

string = "Article Name [Tag Name]"
#and I want to go to
string = "Article Name"

如果有人能提供帮助,我将不胜感激。

【问题讨论】:

    标签: python regex


    【解决方案1】:
    re.sub("\s*\[.*?\]", "", string)
    

    【讨论】:

      【解决方案2】:

      这不使用正则表达式,所以如果这是一个要求,这不是一个答案,但你可以这样做:

       string = string.split('[')[0].strip()
      

      【讨论】:

        【解决方案3】:

        如果您确定 [标签名称] 总是在文章名称之后,您可以不使用正则表达式。

        >>> string="Article Name [Tag Name]"
        >>> string[:string.find(" [")]
        'Article Name'
        

        或使用 .partition

        >>> string.partition(" [")[0]
        'Article Name'
        

        【讨论】:

          【解决方案4】:
          re.sub(r"(.*) \[.*\]", r"\1", string)
          

          这只会删除位于字符串末尾的标签。

          【讨论】:

            【解决方案5】:

            没有正则表达式会更好:

            txt = "Article Name [Tag Name]"
            if txt.rfind('[') and txt.rfind(']') > txt.rfind('['): txt = txt[:txt.rfind('[')]
            if txt[-1] == ' ': txt = txt[:-1]
            

            【讨论】:

              【解决方案6】:

              这是 [] 标签的多个实例的一个

              >>> string = "Article Name [Tag Name] blah blah [tag name2] blah blah [tag name3]"
              >>> for i in string.split("]"):
              ...   print i[ : i.find("[") ]
              ...
              Article Name
               blah blah
               blah blah
              

              【讨论】:

                猜你喜欢
                • 2018-10-17
                • 1970-01-01
                • 1970-01-01
                • 2019-07-30
                • 2011-02-26
                • 1970-01-01
                • 1970-01-01
                • 2016-11-30
                相关资源
                最近更新 更多