我正在尝试使用 python 中的正则表达式删除带有单个重复字符的单词,例如:
good => good
gggggggg => g
到目前为止我尝试过的是以下
re.sub(r'([a-z])\1+', r'\1', 'ffffffbbbbbbbqqq')
上述解决方案的问题是它更改了
good to god
,我只想删除带有单个重复字符的单词。 最佳答案
这里更好的方法是使用 set
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'))
如果你想使用正则表达式,在我们的正则表达式中通过
^
和 $
标记字符串的开始和结束(灵感来自@bobblebubble 评论)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'))
输出将是
good
g
关于python - 我们如何删除重复单个字符的单词?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56455494/