【问题标题】:How to remove all characters after a certain character using Python 3如何使用 Python 3 删除某个字符之后的所有字符
【发布时间】:2019-08-22 15:22:53
【问题描述】:

我需要知道如何使用 Python 3 删除字符串中某个字符之后的所有字符。

例如对于字符串abcd (Read the tnc below!),我只需要abcd。我想删除我们在() 中的所有内容。

我现在可以使用这个 Python 代码:

mystr = "abcd (Read the tnc below!)"

char = ""

for c in mystr:
    if c != "(":
        char += c
    else:
        break

但在我看来,执行如此简单的任务的代码又长又糟糕。我也尝试在网上搜索,但没有找到任何帮助。 Python 3 是否有一些很棒的正则表达式?

谢谢!

【问题讨论】:

    标签: python regex python-3.x string replace


    【解决方案1】:

    您可以使用re.sub

    >>> mystr = "abcd (Read the tnc below!)"
    >>>
    >>> import re
    >>> re.sub(r'\(.*', '', mystr)
    'abcd '
    

    删除括号之间的所有内容

    >>> mystr = "abcd (Read the tnc below!)"
    >>> re.sub(r'\(.*?\)', '', mystr)
    'abcd '
    

    【讨论】:

      【解决方案2】:

      我会这样做:

      mystr.split("(")[0]
      

      【讨论】:

      • 是的,非常感谢。我的代码只是我们可以做什么的演示。甚至这也属于那个类别。我想问的是它是否有一个正则表达式,所以我只删除 () 中的字符而不是它之外的字符?再次感谢!
      • @CoderAmogh 答案是您问题的解决方案......也许您应该将您的问题改进为您需要的此功能
      • 请您再次阅读。我已经更新了问题。
      【解决方案3】:

      我也会使用上面的split 解决方案,但如果您正在寻找一个正则表达式,它就像^(.*?)\( 一样简单 - 这将匹配到第一个左括号

      【讨论】:

      • 感谢您的回答。我只需要在 () 内部而不是在它之外删除...
      猜你喜欢
      • 2021-03-06
      • 1970-01-01
      • 1970-01-01
      • 2016-10-06
      • 1970-01-01
      • 2017-12-12
      • 2010-10-28
      相关资源
      最近更新 更多