2012-01-26 3 views
2

문자가 3 번 이상 반복되는 개별 문자의 반복을 찾고 싶습니다. "444", "sss""------"이 확인되어야하며 "dd"은 식별되어서는 안됩니다.정규식을 사용하여 문자 반복 확인

regexp = re.compile(r"(.)\1") 

그러나,이 같은 문자의 2 이상의 반복을 식별 :

나는 같은 솔루션을 준 이전 StackOverflow의 질문을 가로 질러왔다. 나는 작동하지 않는 (r"(.)\{3,}")을 시도하고, 오류를주는 (r"(.)\3")을 시도했다. 누군가가 나에게 올바른 정규식을 주시겠습니까?

답변

5

(r"(.)\1\1") (또는 심지어 (r"(.)\1\1+"))을 원합니다.

정규식은 "모든 문자 (.)와 일치하고 다시 동일한 문자를 찾습니다 (\1). 동일한 문자를 세 번째로 일치시킵니다 (여기에있는 첫 번째 변형). 또는 동일한 문자 하나를 찾습니다. (위의 두 번째 변종) 이상의 추가 시간.

+0

나는 다음과 같은 방법으로're.findall (R "(.) \ 1 \ 1", 일)'만에 = "111"성으로 정규식을 시도 내 ?.. 출력 같이 – RanRag

+1

@RanRag 이유 '대신에'여기서 '111'] '['1 ']'였다. 괄호 첫 문자 주위 때문입니다 만 ("('R을 사용하여 {3}) "당신은 모든 일을 캡처해야합니다.)' – Borealid

+0

는 그래, 알아 냈어. 덕분에 – RanRag

관련 문제