Как заменить, если первые две буквы в слове повторяются с одной и той же буквой?

Например,

 string = 'hhappy'

И я хочу получить

happy

Я пытался с

re.sub(r'(.)\1+', r'\1', string)

Но это дает

hapy

Спасибо!

1
user4279562 14 Июн 2016 в 16:23
Попробуйте r'\b(\w)\1+'
 – 
SamWhan
14 Июн 2016 в 16:24
Большой! \ b определяет начало (или конец) слова с любым символом \ w, повторяющимся более одного раза.
 – 
user4279562
14 Июн 2016 в 16:28
Рад помочь. Я добавил свое предложение в качестве ответа. Не стесняйтесь отмечать его как принятый, если он сработал для вас.
 – 
SamWhan
14 Июн 2016 в 16:48

3 ответа

Или вы можете просто нарезать:

string = 'hhappy'

func = lambda s: s[1:] if s[0] == s[1] else s
new_string = func(string)
# happy
1
Moses Koledoye 14 Июн 2016 в 16:31
1
Вероятно, это предпочтительнее, чем использование регулярных выражений, из-за простоты использования и понятности.
 – 
Moe Chughtai
14 Июн 2016 в 17:55