如何使用Python 3删除某个字符后的所有字符

如何使用Python 3删除某个字符后的所有字符,python,regex,python-3.x,string,replace,Python,Regex,Python 3.x,String,Replace,我需要知道如何使用Python 3删除字符串中特定字符后的所有字符 例如,对于字符串abcd(请阅读下面的tnc!)我只需要abcd。我想删除()中的所有内容 我现在可以使用以下Python代码: mystr = "abcd (Read the tnc below!)" char = "" for c in mystr: if c != "(": char += c else: break 但在我看来,这似乎是完成如此简单任务的冗长而糟糕的代

我需要知道如何使用Python 3删除字符串中特定字符后的所有字符

例如,对于字符串
abcd(请阅读下面的tnc!)
我只需要
abcd
。我想删除
()
中的所有内容

我现在可以使用以下Python代码:

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

char = ""

for c in mystr:
    if c != "(":
        char += c
    else:
        break
但在我看来,这似乎是完成如此简单任务的冗长而糟糕的代码。我也尝试在网上搜索,但没有找到任何帮助。Python3有一些很棒的正则表达式吗


谢谢

我会这样做:

mystr.split("(")[0]

您可以使用
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 '

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

是的,非常感谢。我的代码只是演示我们可以做什么。甚至这也属于这一类。我想问的是它是否有一个正则表达式,以便我只删除()而不是在它之外?再次感谢!@CoderAmogh答案就是你问题的解决方案…也许你应该将你的问题改进到这个功能,你需要请你再次阅读。我已经更新了这个问题。感谢你的回答。我只需要在()内删除,而不需要在()外删除。。。