我想在字符串中检测括号,如果找到,则删除括号和括号中的所有数据
e.g。
Developer (12)
会变成
Developer
编辑:请注意,每次字符串的长度/文本都不同,并且括号不会一直存在。
我可以使用像
这样的东西来检测括号if '(' in mystring:
print 'found it'
但我如何删除(12)
?
答案 0 :(得分:3)
您可以使用正则表达式并替换它:
>>> re.sub(r'\(.*?\)', '','Developer (12)')
'Developer '
>>> a='DEf (asd () . as ( as ssdd (12334))'
>>> re.sub(r'\(.*?\)', '','DEf (asd () . as ( as ssdd (12334))')
'DEf . as )'
答案 1 :(得分:1)
我相信你想要这样的东西
import re
a = "developer (12)"
print(re.sub("\(.*\)", "", a))
答案 2 :(得分:0)
因为它总是在最后并且没有嵌套括号:
s = "Developer (12)"
s[:s.index('(')] # or s.index(' (') if you want to get rid of the previous space too
答案 3 :(得分:0)
对于嵌套括号和字符串中的多对,此解决方案可以正常工作
def replace_parenthesis_with_empty_str(str):
new_str = ""
stack = []
in_bracker = False
for c in str :
if c == '(' :
stack.append(c)
in_bracker = True
continue
else:
if in_bracker == True:
if c == ')' :
stack.pop()
if not len(stack):
in_bracker = False
else :
new_str += c
return new_str
a = "fsdf(ds fOsf(fs)sdfs f(sdfsd)sd fsdf)c sdsds (sdsd)"
print(replace_parenthesis_with_empty_str(a))