擅长:python、mysql、java
<p>下面的代码适用于上述场景,也适用于@Cary Swoveland所说的例外情况</p>
<p><strong>代码</strong></p>
<pre><code>import re
count = 0
string = "AABBAA"
for i in string:
if i == string[0]:
count +=1
else:
break
#count = 2
R = "^(A+)(B{" + str(count) + "})(\\1)$" #^(A+)(B{2})(\1)$
#print(R)
r = re.compile(R)
print(re.findall(r, string))
</code></pre>
<p>您必须计算字符串中<code>A</code>的出现次数,因为您希望模式匹配具有相同数量<code>B</code>的字符串</p>
<p><strong>输出</strong></p>
<pre><code>[('AA', 'BB', 'AA')]
</code></pre>
<p>当<code>string = "AAABBBBBBAAA"</code></p>
<p><strong>输出</strong><code>[]</code></p>