擅长:python、mysql、java
<p>这里更好的方法是使用<code>set</code></p>
<pre><code>def modify(s):
#Create a set from the string
c = set(s)
#If you have only one character in the set, convert set to string
if len(c) == 1:
return ''.join(c)
#Else return original string
else:
return s
print(modify('good'))
print(modify('gggggggg'))
</code></pre>
<p>如果你想使用regex,在regex中用<code>^</code>和<code>$</code>标记字符串的开始和结束(灵感来自@bobblebubble comment)</p>
<pre><code>import re
def modify(s):
#Create the sub string with a regex which only matches if a single character is repeated
#Marking the start and end of string as well
out = re.sub(r'^([a-z])\1+$', r'\1', s)
return out
print(modify('good'))
print(modify('gggggggg'))
</code></pre>
<p>输出将是</p>
<pre><code>good
g
</code></pre>