首先,this 没有回答我的问题。我已经尝试了几乎所有这些,它们大多在明确指定的 1 个额外新行内匹配。
问题:假设我有字典或任何其他类似 JSON 的对象。我在文件中有很多,我想匹配每一个。例如:
some_var = {
'foo': 'bar',
'list_foo': ['bar1', 'bar2'],
}
other_var = [
{
'foo1': 'bar1',
'foo2': True
},
{
'foo_list1': ['bar3', 'bar4'],
'foo2': 'bar2'
},
]
值可以是任何东西,但字典。所以没有嵌套的字典。
我的最终目标是匹配每组 {}
之间的所有内容,包括数字括号(可选,但可取)。所以当我运行正则表达式时,我会得到这些匹配:
{
'foo': 'bar',
'list_foo': ['bar1', 'bar2'],
}
{
'foo1': 'bar1',
'foo2': True
}
{
'foo_list1': ['bar3', 'bar4'],
'foo2': 'bar2'
}
我的一个关闭尝试是:
\{(.*\n)*\}
但它匹配文件中第一个 {
和最后一个 }
之间的所有内容。还有许多其他尝试,但没有一个适用于可变的 dict 大小。
我在 PyCharm 中运行这个正则表达式是为了快速重构一些代码。
请不要提供解决方法。我已经以不同的方式解决了这个问题,但仍然对这个确切的解决方案感到好奇。