[英]If found brackets found in string, then remove brackets and data inside brackets
我想检测字符串中的方括号,如果找到,请删除方括号和方括号中的所有数据
例如
Developer (12)
会成为
Developer
编辑:请注意,该字符串每次都会是不同的长度/文本,并且括号不会总是出现。
我可以使用类似的方法检测括号
if '(' in mystring:
print 'found it'
但是我将如何移除(12)
?
您可以使用正则表达式并替换它:
>>> re.sub(r'\(.*?\)', '','Developer (12)')
'Developer '
>>> a='DEf (asd () . as ( as ssdd (12334))'
>>> re.sub(r'\(.*?\)', '','DEf (asd () . as ( as ssdd (12334))')
'DEf . as )'
我相信你想要这样的东西
import re
a = "developer (12)"
print(re.sub("\(.*\)", "", a))
由于它总是在结尾并且没有嵌套的括号:
s = "Developer (12)"
s[:s.index('(')] # or s.index(' (') if you want to get rid of the previous space too
对于嵌套括号和字符串中的多个对,此解决方案将有效
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))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.