简体   繁体   English

从Python中的字符串中删除括号和括号

[英]Remove Brackets and Parentheses from string in Python

I have a string like this 我有这样的字符串

string = 'LVPV(filler)PITN(notneeded)ATLDQITGK[0;0;0;0;0;6;2;0;0;5;0]'

How do I remove everything in the brackets and parentheses? 如何删除括号和括号中的所有内容? Like so: 像这样:

string = 'LVPVPITNATLDQITGK' 字符串='LVPVPITNATLDQITGK'

Regular expression is ideal for these tasks and fortunately python standard library provides support for regex 正则表达式是完成这些任务的理想选择,幸运的是python标准库为regex提供支持

>>> re.sub(r"[\(\[].*?[\)\]]", "", st)
'LVPVPITNATLDQITGK'

The above pattern substitutes with empty string any thing that is within a parenthesis or bracket block. 上面的模式用空字符串替换括号或方括号内的任何内容。

Note Regex patterns are difficult to make robust and can easily digress and break for exceptional patterns like 注意正则表达式模式很难使之健壮,并且对于诸如

'LVPV(filler]PITN[notneeded)ATLDQITGK[0;0;0;0;0;6;2;0;0;5;0]'

So you need to be certain about your input data and its expected output 因此,您需要确定输入数据及其预期输出

And nevertheless, you can always do this without regex 但是,您始终可以在不使用正则表达式的情况下执行此操作

>>> import string
>>> ''.join(st.translate(string.maketrans("()[]"," "*4)).split(' ')[::2])
'LVPVPITNATLDQITGK'

I suggest you to use alternation operator. 我建议您使用交替运算符。

>>> string = 'LVPV(filler)PITN(notneeded)ATLDQITGK[0;0;0;0;0;6;2;0;0;5;0]'
>>> re.sub(r"\([^()]*\)|\[[^\[\]]*\]", "", string)
'LVPVPITNATLDQITGK'
>>> st = 'LVPV(filler]PITN[notneeded)ATLDQITGK[0;0;0;0;0;6;2;0;0;5;0]'
>>> re.sub(r"\([^()]*\)|\[[^\[\]]*\]", "", st)
'LVPVATLDQITGK'

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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