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

Python에서 \B 정규식의 동작 원리와 활용법

Python에서 \B 정규식의 동작 원리

정규식에서 \b단어 경계(word boundary)를 나타내며, 한쪽에는 단어 문자(영문자, 숫자, 밑줄 _)가 있고 반대쪽에는 단어 문자가 없는 위치에서 일치합니다.

반면 \B비단어 경계(non-word boundary)로, \b가 일치하지 않는 모든 위치를 의미합니다. 즉, 양쪽 모두 단어 문자인 경우 또는 양쪽 모두 단어 문자가 아닌 경우에 일치합니다.

\B 동작 예제 코드

import re

result = re.findall(r'\Bcat', 'certificate')
result2 = re.findall(r'\Bcat', 'tomcat')
result3 = re.findall(r'\Bcat', 'catfish')

print(result, result2, result3)

위 코드의 실행 결과는 다음과 같습니다.

['cat'] ['cat'] []

결과 분석

  • 'certificate': certificate처럼 'cat' 앞에 단어 문자 'i'가 있으므로 비단어 경계(\B) 조건을 만족해 매칭됩니다.
  • 'tomcat': tomcat의 'cat' 앞에 단어 문자 'm'이 있으므로 마찬가지로 매칭됩니다.
  • 'catfish': 'cat'이 문자열 맨 앞에 위치하므로 그 앞은 단어 경계(\b)입니다. 따라서 \B 조건을 만족하지 못해 빈 리스트가 반환됩니다.

참고로 원본 예제는 파이썬 2 스타일의 print 문을 사용했지만, 파이썬 3 환경에서는 print() 함수 형태로 작성해야 합니다.