擅长:python、mysql、java
<p>使用允许可变长度查找的<code>regex</code>模块:</p>
<pre><code>regex.split(r'(?<![({][^,]*),(?![^,]*[})])', str_)
</code></pre>
<ul>
<li><p><code>(?<![({][^,]*)</code>是一个零宽度的负查找,它确保<code>,</code>前面没有<code>(</code>或{<cd5>},并且中间没有{<cd3>}</li>
<li><p><code>,</code>匹配文本<code>,</code></p></li>
<li><p><code>(?![^,]*[})])</code>是一个零宽度的负前瞻,它确保<code>,</code>后面不跟任何中间的<code>,</code>后跟{<cd12>}或{<cd13>}</p></li>
</ul>
<p><strong>示例:</strong></p>
^{pr2}$
<p><strong>限制:</strong></p>
<ul>
<li><p><code>[({]</code>匹配<code>(</code>/<code>{</code>,而{<cd17>}匹配<code>)</code>/<code>}</code>中的任何一个,因此,当子串以<code>(</code>开头,以<code>}</code>结尾或相反的方式</p></li>
<li><p>不适用于嵌套括号/方括号</p></li>
</ul>