[파이썬] 정규 표현식의 단어 경계 매칭(b, B)

정규 표현식(Regular Expression)은 텍스트에서 패턴을 찾고 매칭하는 도구입니다. 이를 통해 특정한 패턴을 가진 문자열을 검색하거나 대체할 수 있습니다.

단어 경계 매칭은 정규 표현식에서 매우 유용한 개념 중 하나입니다. 정확하게는 \b\B라는 메타 문자를 사용하여 단어의 경계를 정의합니다. \b는 단어의 시작 또는 끝을 나타내는 경계를 매칭하며, \B는 단어 경계가 아닌 위치에 매칭됩니다.

이번 포스트에서는 Python에서 \b\B의 사용법을 살펴보겠습니다.

\b를 사용한 단어 경계 매칭

\b는 단어의 시작과 끝을 나타내는 경계를 매칭합니다. 다음은 \b를 사용하여 단어 ‘apple’을 찾는 예시 코드입니다.

import re

text = "I have an apple and a banana"

pattern = r"\bapple\b"

matches = re.findall(pattern, text)

print(matches)

출력 결과는 ['apple']입니다. 정규 표현식 패턴인 \bapple\b은 ‘apple’이라는 완전한 단어를 매칭하므로, ‘apple’을 찾아서 반환합니다.

\B를 사용한 단어 경계 매칭

\B는 단어 경계가 아닌 위치에 매칭됩니다. 다음은 \B를 사용하여 단어 경계가 아닌 ‘apple’을 찾는 예시 코드입니다.

import re

text = "I have an apple and a banana"

pattern = r"\Ban\B"

matches = re.findall(pattern, text)

print(matches)

출력 결과는 ['an', 'na', 'an']입니다. 정규 표현식 패턴인 \Ban\B는 ‘an’이라는 단어 경계가 아닌 위치에 매칭되므로, “an”, “na”, “an”을 찾아서 반환합니다.

정리

정규 표현식을 사용하여 단어 경계를 매칭하는 \b\B는 문자열에서 원하는 패턴을 더 정확하게 검색하거나 대체할 수 있도록 도와줍니다. \b는 단어의 시작과 끝을 나타내는 단어 경계를 매칭하고, \B는 단어 경계가 아닌 위치에 매칭됩니다.

Python의 re 모듈을 사용하여 \b\B를 활용하면 텍스트 처리 작업을 보다 효과적으로 수행할 수 있습니다.