Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 정규식으로 공백과 줄바꿈만 매칭하는 방법

파이썬 정규식에서 \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 패턴은 텍스트 전처리, 데이터 클렌징 등 다양한 상황에서 유용하게 사용됩니다.