한 줄에있는 단어 사이에 둘 이상의 공백이있는 항목을 검색하는 방법
1. this is a line containing 2 spaces
2. this is a line containing 3 spaces
3. this is a line containing multiple spaces first second three four
위의 모든 것은이 정규식에 대해 유효한 일치입니다. 어떤 정규식을 사용해야합니까?
답변
[ ]{2,}
SPACE (2 이상)
해당 공백 단어가 뒤 따르는 앞뒤를 확인할 수도 있습니다. (탭이나 새 줄과 같은 다른 공백이 아님)
\w[ ]{2,}\w
동일하지만 교체와 같은 작업을위한 공간 만 선택 (캡처) 할 수도 있습니다.
\w([ ]{2,})\w
또는 공백 앞뒤에 단어 문자뿐만 아니라 공백이 있다는 것을 확인하십시오.
[^\s]([ ]{2,})[^\s]
답변
간단한 솔루션 :
/\s{2,}/
이것은 하나 이상의 공백 문자의 모든 발생과 일치합니다. 전체 행과 일치해야하지만 두 개 이상의 연속 된 공백 문자가 포함 된 경우에만 :
/^.*\s{2,}.*$/
공백이 연속적 일 필요가없는 경우 :
/^(.*\s.*){2,}$/
답변
이 정규식은 모든 공백을 선택합니다. 이것을 사용하고 단일 공백으로 바꿀 수 있습니다.
\s+
파이썬 예제
result = re.sub('\s+',' ', data))
답변
검색 [ ]{2,}
. 이렇게하면 줄 내에서 두 개 이상의 인접한 공간을 찾을 수 있습니다. 또한 선행 및 후행 공백과 완전히 공백으로 구성된 행과 일치합니다. 원하지 않으면 Alexander의 대답을 확인하십시오.
사실, 괄호는 생략 할 수 있습니다. 명료 함을위한 것입니다 (그렇지 않으면 반복되는 공백 문자가 잘 보이지 않습니다. :)).
문제는 \s{2,}
그것은 또한 줄 바꿈에 의해 표시되는 Windows 파일에 줄 바꿈 (일치한다는 것입니다 CRLF
거나 \r\n
하는 일치를 \s{2}
.
여러 개의 탭과 공백도 찾으려면을 사용하십시오 [ \t]{2,}
.
답변
여기 내 해결책이 있습니다.
[^0-9A-Z,\n]
이것은 모든 숫자, 쉼표 및 새 줄을 제거하지만 데이터 세트와 같은 중간 공백을 선택합니다.
- 20171106,16632 ESCG0000018SB
- 20171107,280 ESCG0000018SB
- 20171106,70476 ESCG0000018SB