如果我有这样的字符串:
text to remove { first text { group } { group2 } } more text to remove
我只想专门删除不在第一个大括号内的文本,以得到如下结果:
{ first text { group } { group2 } }
要在正则表达式中执行此操作,我不确定如何仅针对大括号的第一次迭代而不是嵌套括号进行指定。
也许有比使用正则表达式更简单的方法。不过,要删除的文字的长度可能会有所不同。
答案 0 :(得分:3)
您可以使用search
和group
:
>>> re.search('{.*}',s).group(0)
'{ first text { group } { group2 } }'
>>>
或findall
:
>>> re.findall('{.*}',s)[0]
'{ first text { group } { group2 } }'
>>>
答案 1 :(得分:2)
除了正则表达式,您还可以使用find
和rfind
,它们比正则表达式更有效。
str = 'text to remove { first text { group } { group2 } } more text to remove'
begin, end = str.find('{'), str.rfind('}')
filtered_str = str[begin: end+1]
print(filtered_str)