擅长:python、mysql、java
<p><code>{(.*)}</code>是一个<strong>贪婪的</strong>匹配,它将从第一个<code>{</code>到最后一个<code>}</code>匹配,这样就可以吞掉其中可能存在的<code>{</code>/<code>}</code>对。你想要非贪婪匹配,也就是说</p>
<pre><code>{(.*?)}
</code></pre>
<p>不同的是星号后面的问号,使它不贪婪。在</p>
<p>如果需要正确匹配“嵌套”大括号,这仍然不起作用,但是,<strong>在RE世界中,</strong>没有任何东西会:在正则语言中,许多众所周知的限制(正则语言是正则表达式可以匹配的语言)是不可能“正确嵌套”任何类型的左/右括号(一些难以置信的扩展称为RE-manage-to,但不是Python的,任何有CS背景的人都会发现无论如何,把这些表达式称为“正规的”冒犯性的;—)。如果您需要REs无法承受的更一般的解析,<a href="http://pyparsing.wikispaces.com/" rel="nofollow noreferrer">pyparsing</a>或其他成熟的Python解析器是正确的选择。在</p>