用Python中的单个字母替换单词中多个字母的实例

时间:2015-02-28 10:36:22

标签: python regex

我有一个字符串

line = "Pleeeeease"

通过将多个e一起缩小来使其成为Please。我知道Ruby中的代码

line.gsub!(/(.)\1{2,}/, '\1')

我如何在Python中做同样的事情?

2 个答案:

答案 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'