Regex 正则表达式:匹配多行表达式

Regex 正则表达式:匹配多行表达式,regex,Regex,首先,他没有回答我的问题。我已经尝试了几乎所有这些,它们大多在明确指定的1个额外的新行内匹配 问题是:假设我有字典,或者任何其他类似JSON的对象。我在文件中有很多,我想匹配每一个。例如: some_var = { 'foo': 'bar', 'list_foo': ['bar1', 'bar2'], } other_var = [ { 'foo1': 'bar1', 'foo2': True }, { 'f

首先,他没有回答我的问题。我已经尝试了几乎所有这些,它们大多在明确指定的1个额外的新行内匹配

问题是:假设我有字典,或者任何其他类似JSON的对象。我在文件中有很多,我想匹配每一个。例如:

some_var = {
    'foo': 'bar',
    'list_foo': ['bar1', 'bar2'],
}
other_var = [
    {
        'foo1': 'bar1',
        'foo2': True
    },
    {
        'foo_list1': ['bar3', 'bar4'],
        'foo2': 'bar2'
    },
]
值可以是任何值,但不能是dict。因此没有嵌套dict

我的最终目标是匹配每一组
{}
之间的所有内容,包括数字括号(可选,但需要)。因此,当我运行正则表达式时,我将获得匹配的:

{
    'foo': 'bar',
    'list_foo': ['bar1', 'bar2'],
}
{
    'foo1': 'bar1',
    'foo2': True
}
{
    'foo_list1': ['bar3', 'bar4'],
    'foo2': 'bar2'
}
我的一个尝试是:

\{(.*\n)*\}
但是它匹配文件中第一个
{
和最后一个
}
之间的所有内容。还有许多其他的尝试,但都不适用于可变dict大小

我正在PyCharm中运行这个正则表达式,试图快速重构一些代码


请不要提供解决办法。我已经用另一种方式解决了这个问题,但我仍然对这个确切的解决方案感到好奇。

使用
{[^}]+}

正则表达式应该包括除右大括号以外的任何内容


演示:

哦,我的天啊,真的!我试图为
}
添加异常,但问题可能是每次都用“\`来转义它。编辑:这在PyCharm中不起作用。