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

파이썬(Python) 정규식 앵커 ^와 $의 작동 원리

정규식 앵커란 무엇인가?

앵커(Anchor)는 어떤 문자와도 직접 일치하지 않으면서, 문자열이나 매칭(matching) 과정에 대해 특정 조건을 단언(assert)하는 정규식 토큰입니다. 앵커는 정규식 엔진이 현재 위치한 지점이 문자열(또는 줄)의 시작이나 끝처럼 미리 정해진 위치와 일치하는지를 알려주는 역할을 합니다.

이러한 단언은 여러 가지 이유로 매우 유용합니다.

  • 위치 제한: 문자열(또는 줄)의 시작이나 끝에 있는 알파벳·숫자만 매칭하고, 그 외의 위치에서는 매칭되지 않도록 지정할 수 있습니다.
  • 성능 향상: 엔진에게 특정 위치에서만 패턴을 찾도록 지시하면, 불필요한 다른 위치를 탐색할 필요가 없습니다. 그래서 가능한 한 앵커를 사용하는 것이 권장됩니다.

대표적인 앵커 토큰: ^ 와 $

  • ^ : 문자열(또는 줄)의 시작을 의미합니다.
  • $ : 문자열(또는 줄)의 을 의미합니다.

앵커 사용 예제

다음 코드는 앵커 ^$ 의 실제 사용 예를 보여줍니다.

import re

s = 'Princess Diana was a beauty icon'

result = re.search(r'^\w+', s)
print(result.group())   # 문자열의 시작 부분에서 단어 매칭

result2 = re.search(r'\w+$', s)
print(result2.group())  # 문자열의 끝 부분에서 단어 매칭

실행 결과는 다음과 같습니다.

Princess
icon

첫 번째 패턴 r'^\w+' 은 문자열의 맨 앞에서 연속된 단어 문자(\w+)를 찾기 때문에 'Princess'가 반환됩니다. 반면 두 번째 패턴 r'\w+$' 은 문자열의 맨 끝에서 단어를 찾기 때문에 'icon'이 반환됩니다. 이처럼 앵커를 활용하면 원하는 위치에서만 정확하게 패턴을 추출할 수 있습니다.