我正在与Regex挣扎,我已经阅读了wiki并玩过,但我似乎无法做出正确的匹配。
string_before = 'President [Trump] first name is [Donald], so his full name is [[Donald] [Trump]]'
string_after = 'President [Trump] first name is [Donald], so his full name is [Donald Trump]'
我想删除外括号内的任何可能的括号,同时保留外括号和文本。
如果没有正则表达式,这可以在python中轻松解决吗?
答案 0 :(得分:1)
答案 1 :(得分:1)
在一对括号内的两个相邻括号表达式的特定情况下,您可以执行
string = re.sub(r'\[\[([^][]+)\] \[([^][]+)\]\]', r'[\1 \2]', string)
这不方便扩展到任意数量的相邻括号表达式,但也许它足以满足您的需求。
答案 2 :(得分:0)
In [1]: import re
In [2]: before='blablabla [[Donald] [Trump]] blablabla'
In [3]: l=before.find('[')+1
In [4]: r=before.rfind(']')
In [5]: before[:l] + re.sub( r'[][]','',before[l:r]) + before[r:]
Out[5]: 'blablabla [Donald Trump] blablabla'
只显示一种方法,省略错误检查/处理。