如果我有一个包含许多单词的字符串如果字符串中的单词不是以_开头,我想删除右括号。
输入示例:

this is an example to _remove) brackets under certain) conditions.

输出:
this is an example to _remove) brackets under certain conditions.

如果不使用re.sub拆分单词,我怎么能做到这一点?

最佳答案

re.sub接受可调用的作为第二个参数,这在这里很方便:

>>> import re
>>> s = 'this is an example to _remove) brackets under certain) conditions.'
>>> re.sub('(\w+)\)', lambda m: m.group(0) if m.group(0).startswith('_') else m.group(1), s)
'this is an example to _remove) brackets under certain conditions.'

09-25 19:03