用python删除最后一个[blabla]或(blabla),包括[]和()

2024-05-15 16:48:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个字符串的形式:

SDP_123_CC[comments] 

我想从字符串的末尾删除方括号和其中的内容。输出为:

SDP_123_CC

另一个例子是这个字符串:

SDP_XX_YY(123)_ZZ(XXXXX) 

我想从字符串的末尾删除括号和括号内的内容。输出为:

SDP_XX_YY(123)_ZZ

基本上,我想删除字符串中最后的方括号或圆括号,以及它们之间的任何内容。我怎样才能做到这一点?你知道吗


Tags: 字符串sdp内容comments形式例子括号cc
2条回答
ori = "SDP_123_CC[comments]"
rr = re.compile(r"""(.*)     #match the string that will be kept, and will be backreference with number 1
[\[\(]                       #match [  or  (
[^\[\]\(\)]*                 #match anything but not "[]()"
[\]\)]$""",re.X)             #match the last )  ]
print re.sub(rr,"\\1",ori)

如果括号或方括号内只有数字或字符,您可以使用:

>>> import re
>>> s = 'SDP_XX_YY(123)_ZZ(XXXXX)' 
>>> re.sub(r'(?:\(\w*\)|\[\w*\])$', '', s)
'SDP_XX_YY(123)_ZZ'

>>> s = 'SDP_123_CC[comments]'
>>> re.sub(r'(?:\(\w*\)|\[\w*\])$', '', s)
'SDP_123_CC'

相关问题 更多 >