擅长:python、mysql、java
<p>如果我没看错,括号内可能有一到两个逗号分隔的值。如果是两个,你只想抓住第二个。试试这个:</p>
<pre><code>p = re.compile(r'\((?:[^,)]+,\s*)?([A-Za-z0-9-]+)\)')
</code></pre>
<p>在开始paren之后,<code>(?:[^,)]+,\s*)?</code>尝试匹配第一个值,它通过后面的逗号来标识第一个值。您并不真正关心第一个值是什么样子,只要其中没有任何逗号。但不能只使用<code>[^,]+</code>,因为在只有一个值的情况下,这会匹配太多。将paren添加到排除的字符列表中,使匹配保持在一组括号中。在</p>