2016-06-14 3 views
1

단어의 처음 두 글자가 같은 글자로 반복되는 경우 어떻게 바꿀 수 있습니까?처음 두 글자가 파이썬에서 반복되는 경우 바꾸기

예를 들어

,

string = 'hhappy' 

그리고 내가

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

과 노력하지만

happy 

을 얻으려면,이

hapy 
제공

고마워요!

+0

시도 'R'\ B를 (\ w) \ 1 +' – ClasG

+0

좋아! \ b는 임의의 문자 \ w가 두 번 이상 반복되는 단어의 시작 (또는 끝)을 정의합니다. – user4279562

+0

도와 드리겠습니다. 내 제안을 답으로 추가했습니다. 그것이 당신을 위해 일했다면 받아 들일 수있는 것으로 표시하도록하십시오. – ClasG

답변

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

아니면 단순히 슬라이스 수 :

string = 'hhappy' 

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

이것은 사용의 편의성과 이해하기 쉽기 때문에 regex를 사용하는 것이 좋습니다. –

관련 문제