51Testing软件测试论坛

标题: 通过正则表达式获取括号中内容的问题 [打印本页]

作者: 测试积点老人    时间: 2019-11-11 10:42
标题: 通过正则表达式获取括号中内容的问题
有下面一个字符串,想通过正则表达式把最外层括号中的内容都取出来
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 ]']
另外括号的类型是不一定的,有可能是大括号{},也有可能是中括号[],请问有大括号和中括号都适用的正则表达式吗?

作者: bellas    时间: 2019-11-12 09:32
match = /[\[\{\]\}]/.exec( str)
            ^
SyntaxError: invalid syntax
作者: 海海豚    时间: 2019-11-12 09:47
match = /[\[\{\]\}]/.exec( str)
作者: qqq911    时间: 2019-11-12 11:18
都适用的
作者: litingting0214    时间: 2019-11-12 11:52
match = /[\[\{\]\}]/.exec( str)
作者: jingzizx    时间: 2019-11-12 12:06
可以,一样的编写正则




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2