파이썬 정규식에서 \s 패턴은 스페이스, 탭, 줄바꿈 등 모든 종류의 공백 문자와 일치합니다. 이 패턴을 활용하면 문자열에서 공백과 줄바꿈만 손쉽게 추출할 수 있습니다.
\s 메타 문자란?
\s는 다음과 같은 공백 문자들과 일치하는 특수 시퀀스입니다.
- 스페이스 ( )
- 탭 (\t)
- 줄바꿈 (\n)
- 캐리지 리턴 (\r)
- 폼 피드 (\f)
- 수직 탭 (\v)
예제 코드
다음 예제는 re.findall() 함수와 \s+ 패턴을 사용하여 주어진 문자열에서 공백과 줄바꿈만 찾아 출력합니다. \s+에서 더하기 기호(+)는 '하나 이상의 연속된 공백 문자'를 의미합니다.
import re foo = ''' I find Tutorialspoint useful''' result = re.findall(r'\s+', foo) print(result)
re.findall()은 패턴과 일치하는 모든 부분을 리스트(list) 형태로 반환하므로, 문자열 전체를 훑으며 공백 덩어리들을 순서대로 수집합니다.
실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
[' ', ' ', ' \n ', ' \n ']
출력 결과를 보면 단일 스페이스뿐 아니라 줄바꿈(\n)이 포함된 공백 그룹까지 모두 리스트 요소로 반환된 것을 확인할 수 있습니다.
응용: 불필요한 공백 정리하기
실무에서는 매칭된 공백을 다른 문자로 치환해 문자열을 정리하는 용도로 자주 활용됩니다. 아래처럼 re.sub()를 사용하면 연속된 공백을 하나의 스페이스로 압축할 수 있습니다.
import re cleaned = re.sub(r'\s+', ' ', foo).strip() print(cleaned) # 'I find Tutorialspoint useful'
이처럼 \s 패턴은 텍스트 전처리, 데이터 클렌징 등 다양한 상황에서 유용하게 사용됩니다.