我有一个字符串
line = "Pleeeeease"
通过将多个e一起缩小来使其成为Please。我知道Ruby中的代码
line.gsub!(/(.)\1{2,}/, '\1')
我如何在Python中做同样的事情?
答案 0 :(得分:5)
使用re.sub功能。
>>> import re
>>> line = "Pleeeeease"
>>> re.sub(r'(.)\1{2,}', r'\1', line)
'Please'
这将用特定的单个字符替换三个或更多连续的相同字符。
>>> re.sub(r'(.)\1+', r'\1', line)
'Please'
这将用特定的单个字符替换两个或多个连续的相同字符。
答案 1 :(得分:1)
非正则表达方式:
print("".join([ch if ch != line[ind+1:ind+2] else "" for ind, ch in enumerate(line)]))
In [44]: line = "Pleeeeeeeeeeasee"
In [45]: "".join([ch if ch != line[ind+1:ind+2] else "" for ind, ch in enumerate(line)])
Out[45]: 'Please'
In [46]: line = "Pleease"
In [47]: "".join([ch if ch != line[ind+1:ind+2] else "" for ind, ch in enumerate(line)])
Out[47]: 'Please'