擅长:python、mysql、java
<p>正则表达式不匹配boo,因为它搜索的重复项前后至少有一个不同的字符</p>
<p>一种可能是制作一个更简单的正则表达式来捕获所有重复项,然后在结果是一个字符时恢复</p>
<pre><code>def remove_duplicate(string):
new_string = re.sub(r'([a-zA-Z])\1+', r'\1', string)
return new_string if len(new_string) > 1 else string
</code></pre>
<p>下面是一个不带正则表达式的可能解决方案。它的速度更快,但它也将删除重复的空白和标点符号。不仅仅是信件</p>
<pre><code>def remove_duplicate(string):
new_string = ''
last_c = None
for c in string:
if c == last_c:
continue
else:
new_string += c
last_c = c
if len(new_string) > 1:
return new_string
else:
return string
</code></pre>