擅长:python、mysql、java
<p>您应该通过将<code>(...)</code>更改为<code>(?:...)</code>,使您的组成为非捕获组。在</p>
<pre><code>accidentals = "(?:#|##|b|bb)?";
chords = "(?:maj|min|m|sus|aug|dim)?";
</code></pre>
<p>在线查看:<a href="http://ideone.com/BrV3RN" rel="nofollow">ideone</a></p>
<hr/>
<p>当您捕获组时它不起作用的原因是它只返回那些组而不是整个匹配。根据文件:</p>
<blockquote>
<p><strong><code>re.findall(pattern, string, flags=0)</code></strong></p>
<p>Return all non-overlapping matches of pattern in string, as a list of strings. The string is scanned left-to-right, and matches are returned in the order found. <strong>If one or more groups are present in the pattern, return a list of groups</strong>; this will be a list of tuples if the pattern has more than one group. Empty matches are included in the result unless they touch the beginning of another match.</p>
</blockquote>