擅长:python、mysql、java
<p>在您的模式中,您正在重复一个捕获组,它将为您提供组中最后一次迭代的值。例如,这个部分<code>(ab)*</code>将包含ab最后一次出现的值</p>
<pre><code>matched ()()()
abababab
() captured
</code></pre>
<p>一种方法是使用捕获组<code>(ab|cd)</code>在ab或cd上拆分,以保留分隔符并从结果中删除空条目。你知道吗</p>
<p>例如</p>
<pre><code>import re
s = "ababababcdcddscdcdfscdcd"
pattern = r"(ab|cd)"
result = list(filter(None, re.split(pattern, s)))
print(result)
</code></pre>
<p>输出</p>
<pre><code>['ab', 'ab', 'ab', 'ab', 'cd', 'cd', 'ds', 'cd', 'cd', 'fs', 'cd', 'cd']
</code></pre>
<p><a href="https://ideone.com/GT60f7" rel="nofollow noreferrer">Python demo</a></p>