擅长:python、mysql、java
<p>您可以使用较新的<code>regex</code>模块(或使用lookarounds):</p>
<pre><code>import regex as re
seq = 'QYGQGYGQQG'
matches = re.findall(r'GY|YG', seq, overlapped=True)
print(matches)
# ['YG', 'GY', 'YG']
</code></pre>
<p>或-带<code>re.finditer</code>:</p>
<pre><code>for m in re.finditer(r'GY|YG', seq, overlapped=True):
print(m.span())
</code></pre>
<p>这将产生</p>
<pre><code>(1, 3)
(4, 6)
(5, 7)
</code></pre>