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

Python 정규 표현식으로 비단어 문자(Non-word Character)를 매칭하는 방법

정규 표현식에서 \W 패턴은 단어 문자(alphanumeric 및 밑줄 _)가 아닌 모든 문자를 의미합니다. 즉, 영문자·숫자·밑줄을 제외한 특수 기호나 공백 등이 이에 해당합니다.

아래 예제 코드는 주어진 문자열에서 모든 비단어 문자를 찾아 리스트 형태로 출력합니다.

예제

import re

s = 'ab5z8d*$&Y@'
regx = re.compile(r'\W')
result = regx.findall(s)
print(result)

출력 결과

['*', '$', '&', '@']

코드 설명

  • re.compile(r'\W'): 비단어 문자에 해당하는 정규 표현식 패턴을 미리 컴파일합니다. raw string(r'')을 사용하면 역슬래시 처리가 간편해집니다.
  • findall(s): 입력 문자열에서 패턴과 일치하는 모든 부분을 리스트로 반환합니다.

\W는 사실상 [^a-zA-Z0-9_]와 동일한 의미입니다. 따라서 위 예제에서 알파벳(a, b, z, d, Y)과 숫자(5, 8)는 제외되고, 특수 문자인 *, $, &, @만 결과 리스트에 담기게 됩니다.

반대로 단어 문자만 매칭하고 싶다면 소문자 \w 패턴을 사용하면 됩니다.