如果前两个字母在python中重复,则替换

时间:2016-06-14 13:23:47

标签: python regex

如果单词中的前两个字母用相同的字母重复,如何替换?

例如,

${Number}=  Run Keyword Evaluate    $First * $Second + $Third

我想要

 string = 'hhappy'

我试过

happy

但是,这给出了

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

谢谢!

3 个答案:

答案 0 :(得分:5)

您需要添加caret (^)以仅匹配该行的开头。

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

示例:

import re
string = 'hhappy'
print re.sub(r'^(.)\1+', r'\1', string)

打印:

happy

以上仅适用于该行的开头。如果您需要为每个单词执行此操作,则需要执行此操作:

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

答案 1 :(得分:1)

正则表达式将是

\b(\w)\1+

\b检查单词边界。

Check it out here at regex101

答案 2 :(得分:1)

或者你可以简单地切片:

string = 'hhappy'

func = lambda s: s[1:] if s[0] == s[1] else s
new_string = func(string)
# happy