有下面一个字符串,想通过正则表达式把最外层括号中的内容都取出来
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 ]']
另外括号的类型是不一定的,有可能是大括号{},也有可能是中括号[],请问有大括号和中括号都适用的正则表达式吗?
[\[\{\]\}]
你好!是改为match = re.findall('[[{]}]', str)的意思吗?
输出结果是['[', '{', '[', ']', '[', ']', '}', ']', '[', ']']
还是说我理解得不对……?
@芽衣: 改为
match = /[\[\{\]\}]/.exec( str)
@慧☆星: 谢谢你的回复。
好像语法有误
match = /[[{]}]/.exec(str)
^
SyntaxError: invalid syntax
@慧☆星:
不好意思,不知道为什么直接粘贴报错结果显示出来会变成其他的格式,用插入代码的方式显示比较正确。
match = /[\[\{\]\}]/.exec( str)
^
SyntaxError: invalid syntax
@芽衣: 我用的是markdown语法里面的代码块