首页新闻招聘找找看知识库

【python】通过正则表达式获取括号中内容的问题

-1
悬赏园豆:10 [待解决问题]

有下面一个字符串,想通过正则表达式把最外层括号中的内容都取出来

str = '[A {B [C] | D [E] } ] F [ G ]'

match = re.findall('\[.*?\]', str)
print(match)

re.findall('\[.*?\]', str)的写法是把从第一个括号“[”到第一个反括号“]”的内容给取出来,所以造成了下面的输出结果
['[A {B [C]', '[E]', '[ G ]']

但是想要的输出结果是获取最外层的括号中的内容
['[A {B [C] | D [E] } ]', '[ G ]']

另外括号的类型是不一定的,有可能是大括号{},也有可能是中括号[],请问有大括号和中括号都适用的正则表达式吗?

芽衣的主页 芽衣 | 初学一级 | 园豆:50
提问于:2018-10-11 09:08
< >
分享
所有回答(1)
0
[\[\{\]\}]
慧☆星 | 园豆:5030 (大侠五级) | 2018-10-11 09:13

你好!是改为match = re.findall('[[{]}]', str)的意思吗?
输出结果是['[', '{', '[', ']', '[', ']', '}', ']', '[', ']']
还是说我理解得不对……?

支持(0) 反对(0) 芽衣 | 园豆:50 (初学一级) | 2018-10-11 09:22

@芽衣: 改为

match = /[\[\{\]\}]/.exec( str)
支持(0) 反对(0) 慧☆星 | 园豆:5030 (大侠五级) | 2018-10-11 09:42

@慧☆星: 谢谢你的回复。
好像语法有误
match = /[[{]}]/.exec(str)
^
SyntaxError: invalid syntax

支持(0) 反对(0) 芽衣 | 园豆:50 (初学一级) | 2018-10-11 09:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册