在 Python 3.4 中,我尝试使用两种不同的正则表达式来匹配两种最里面的大括号,即不包含任何其他大括号的大括号。
正则表达式 1)匹配不在其他大括号或圆括号内的最里面的大括号,即下面的表达式
re.findall(r'...something...',"aaa{bbb{ccc}ddd}eee{fff}ggg(hhh{iii})jjj{kkk}")
会返回这个
['{fff}','{kkk}']
目前我正在尝试使用以下表达式
re.findall(r'[^{(]*\{[^{}]+\}[^})]*',"aaa{bbb{ccc}ddd}eee{fff}ggg(hhh{iii})jjj{kkk}")
不幸的是,它返回了这个:
['bbb{ccc}ddd', '}eee{fff}ggg(hhh{iii', '})jjj{kkk}']
正则表达式 2)匹配其他大括号或圆括号内的最里面的大括号,即以下表达式
re.findall(r'...something...',"aaa{bbb{ccc}ddd}eee{fff}ggg(hhh{iii})jjj{kkk}")
会返回这个
['{ccc}','{iii}']
我正在尝试这个表达式:
re.findall(r'[{(]*\{[^{}]+\}[})]*',"aaa{bbb{ccc}ddd}eee{fff}ggg(hhh{iii})jjj{kkk}")
但它返回这个:
['{ccc}', '{fff}', '{iii})', '{kkk}']
关于如何修改这些正则表达式以获得正确匹配的任何想法?