繁体   English   中英

如果在字符串中找到括号,则删除括号和括号内的数据

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM