단어의 처음 두 글자가 같은 글자로 반복되는 경우 어떻게 바꿀 수 있습니까?처음 두 글자가 파이썬에서 반복되는 경우 바꾸기
예를 들어,
string = 'hhappy'
그리고 내가
re.sub(r'(.)\1+', r'\1', string)
과 노력하지만
happy
을 얻으려면,이
hapy
제공
고마워요!
단어의 처음 두 글자가 같은 글자로 반복되는 경우 어떻게 바꿀 수 있습니까?처음 두 글자가 파이썬에서 반복되는 경우 바꾸기
예를 들어,
string = 'hhappy'
그리고 내가
re.sub(r'(.)\1+', r'\1', string)
과 노력하지만
happy
을 얻으려면,이
hapy
제공
고마워요!
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)
아니면 단순히 슬라이스 수 :
string = 'hhappy'
func = lambda s: s[1:] if s[0] == s[1] else s
new_string = func(string)
# happy
이것은 사용의 편의성과 이해하기 쉽기 때문에 regex를 사용하는 것이 좋습니다. –
시도 'R'\ B를 (\ w) \ 1 +' – ClasG
좋아! \ b는 임의의 문자 \ w가 두 번 이상 반복되는 단어의 시작 (또는 끝)을 정의합니다. – user4279562
도와 드리겠습니다. 내 제안을 답으로 추가했습니다. 그것이 당신을 위해 일했다면 받아 들일 수있는 것으로 표시하도록하십시오. – ClasG