2011-12-10 2 views
1

파이썬에서 문자열에 연속 된 공백이 2 개있는 경우 어떻게 감지합니까? 입력 문자열 예를 들어문자열 파이썬의 공백

:

 
Hello there 

나는이 개 공간을 감지하고 True를 반환하고 싶습니다.

나는 splitjoin을 연속 된 공백을 채우기 위해 사용할 수 있지만 어떻게 감지 할 수 있습니까?

답변

7

두 개 이상의 연속 공간을 찾으려면 :

if s.count(' ') >= 2: 
    # s contains two or more spaces 
+0

두 개의 * 이상의 공백을 감지합니다. 예를 들어 3 개의 연속 된 공백에 대해 "참"을 반환합니다. 여러 공간의 존재를 감지하여 문자열을 정리할 수있는 최상의 솔루션입니다. – Blair

+0

그 점을 지적 해 주셔서 감사합니다. 나는 명확성을 위해 나의 대답을 업데이트했다. –

2

보다 일반적인 솔루션입니다 : 당신은 문자열의 아무 곳이나 두 개 이상의 공간을 찾으려면

if " " in s: 
    # s contains two or more consecutive space 

을 입력 된 문자열에 두 개 이상의 연속 공백이 인지 확인하기 위해 정규 표현식을 사용하여 수행됩니다. 예를 들어 :

import re 
if re.search('\s{2,}', s): 
    # s contains two or more consecutive spaces 

만이 어디 문자열의 정확히이 개 공간은 간단합니다, 당신은, @ 마크 바이어스의 솔루션을 사용하는 것이 더 낫다 여부를 확인해야하는 경우.

+0

두 단어 이상인 경우 정규 표현식이 더 좋은 이유는 무엇입니까? 단어의 수와 그 단어의 수는 무엇입니까? 질문은 정확하게 두 개의 공백을 묻는 것이 었습니다.이 경우 'in'은 정규 표현식을 사용하는 것보다 분명히 우수합니다 (특히 프로그래밍을 배우는 초보자를위한 질문입니다. –

+0

@BryanOakley가 동의했습니다. 나는 내 대답을 편집했다. –

관련 문제