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

파이썬 정규식으로 공백과 줄바꿈을 제외한 모든 문자 매칭하기

정규식을 사용하면 주어진 문자열에서 공백과 줄바꿈을 제외한 모든 문자를 손쉽게 매칭할 수 있습니다. 핵심은 부정 문자 클래스(negated character class)인 [^ \n]입니다. 대괄호 안 맨 앞의 캐럿(^)은 "해당 문자들을 제외한다"는 의미로, 즉 공백( )과 줄바꿈(\n)이 아닌 모든 문자와 일치시킵니다.

패턴 구조 살펴보기

  • ^ : 문자열의 시작 위치
  • [^ \n]* : 공백과 줄바꿈을 제외한 문자가 0개 이상 반복됨
  • $ : 문자열의 끝 위치

따라서 ^[^ \n]*$ 패턴은 문자열 전체가 공백이나 줄바꿈 없이 구성되어 있을 때만 매칭에 성공합니다.

예제 코드

import re

print(re.match(r'^[^ \n]*$', """IfindTutorialspointuseful"""))
print(re.match(r'^[^ \n]*$', """I find Tutorialspointuseful"""))
print(re.match(r'^[^ \n]*$', """Ifind
Tutorialspointuseful"""))

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

<_sre.SRE_Match object at 0x00000000048965E0>
None
None

결과 분석

첫 번째 문자열 "IfindTutorialspointuseful"은 공백과 줄바꿈이 전혀 포함되어 있지 않으므로 매치 객체가 정상적으로 반환됩니다. 반면 두 번째 문자열에는 공백이, 세 번째 문자열에는 줄바꿈이 포함되어 있어 두 경우 모두 None이 반환됩니다.

추가 팁

파이썬 3 환경에서는 매치 객체가 <re.Match object; span=(0, 25), match='IfindTutorialspointuseful'> 형태로 출력됩니다. 또한 축약 문자 클래스인 \S(공백이 아닌 모든 문자)를 활용하면 ^\S*$처럼 더 간결하게 동일한 패턴을 표현할 수도 있습니다.