正则表达式在字符串中查找括号

use*_*ser 5 python regex

我有一个有多个括号的字符串.我们说吧

s="(a(vdwvndw){}]"
Run Code Online (Sandbox Code Playgroud)

我想将所有括号提取为单独的字符串.

我试过这个:

>>> brackets=re.search(r"[(){}[]]+",s)
>>> brackets.group()
Run Code Online (Sandbox Code Playgroud)

但它只给了我最后两个括号.

'}]'
Run Code Online (Sandbox Code Playgroud)

这是为什么?它不应该获取字符集中的任何一个或多个括号吗?

Tig*_*kT3 6

你必须逃脱第一个关闭方括号.

r'[(){}[\]]+'
Run Code Online (Sandbox Code Playgroud)

要将所有这些组合成一个字符串,您可以搜索任何匹配的内容并将其删除.

brackets = re.sub( r'[^(){}[\]]', '', s)
Run Code Online (Sandbox Code Playgroud)