擅长:python、mysql、java
<p>对特定正则表达式模式使用<code>re.split()</code>函数:</p>
<pre><code>import re
s = 'OUTPUT" "PROCEDURE" [ "IS" ] procedure-name [ ( "THROUGH" | "THRU" ) procedure-name ] | "GIVING" { file-name }+'
result = re.split(r'\|(?![^(]*\))', s)
print(result) # the list, containing 2 strings
</code></pre>
<p>输出:</p>
<pre><code>['OUTPUT" "PROCEDURE" [ "IS" ] procedure-name [ ( "THROUGH" | "THRU" ) procedure-name ] ', ' "GIVING" { file-name }+']
</code></pre>
<hr/>
<p><code>(?![^(]*\))</code>-lookahead否定断言确保分隔符<code>|</code>后面没有右大括号<code>)</code></p>
<p><code>[^(]</code>-匹配除大括号外的任何字符<code>(</code></p>
<p><code>\)</code>-匹配右大括号<code>)</code></p>