[파이썬] 문자열의 정규식 매칭 특정 위치 범위

정규식(Regular Expression)은 특정 패턴에 맞는 문자열을 검색하거나, 특정한 형식의 문자열을 생성하기 위해 사용되는 강력한 도구입니다. 파이썬에서는 re 모듈을 통해 정규식을 지원하며, 이를 활용하여 문자열 내에서 특정 위치 범위의 패턴을 찾는 것이 가능합니다.

시작과 끝 위치로 정규식 매칭 범위 설정하기

정규식에서 특정 위치 범위를 매칭하기 위해 ^$를 사용할 수 있습니다. ^는 문자열의 시작을 나타내며, $는 문자열의 끝을 나타냅니다.

예를 들어, 문자열이 Hello, World!일 때, ^H는 문자열의 시작이 H인 경우와 매치하며, !$는 문자열의 끝이 !인 경우와 매치합니다.

정규식 패턴은 re 모듈의 search() 함수를 사용하여 검색할 수 있으며, 매칭 결과는 Match 객체로 반환됩니다.

import re

string = "Hello, World!"

# 문자열의 시작이 'H'인지 확인
match_start = re.search('^H', string)
if match_start:
    print("문자열의 시작이 'H'와 일치합니다.")
else:
    print("일치하는 패턴이 없습니다.")

# 문자열의 끝이 '!'인지 확인
match_end = re.search('!$', string)
if match_end:
    print("문자열의 끝이 '!'와 일치합니다.")
else:
    print("일치하는 패턴이 없습니다.")

실행 결과:

문자열의 시작이 'H'와 일치합니다.
일치하는 패턴이 없습니다.

특정 범위 내의 문자열 매칭하기

만약 문자열에서 특정 범위 내에 패턴이 존재하는지 확인하고 싶은 경우, [ ]를 사용하여 원하는 문자열 집합을 지정할 수 있습니다.

예를 들어, 문자열이 Hello, World!일 때, [a-z]는 소문자 알파벳 중 하나와 매치하며, [A-Z]는 대문자 알파벳 중 하나와 매치합니다.

import re

string = "Hello, World!"

# 문자열에서 소문자 알파벳이 존재하는지 확인
match_lower = re.search('[a-z]', string)
if match_lower:
    print("소문자 알파벳이 존재합니다.")
else:
    print("일치하는 패턴이 없습니다.")

# 문자열에서 대문자 알파벳이 존재하는지 확인
match_upper = re.search('[A-Z]', string)
if match_upper:
    print("대문자 알파벳이 존재합니다.")
else:
    print("일치하는 패턴이 없습니다.")

실행 결과:

소문자 알파벳이 존재합니다.
대문자 알파벳이 존재합니다.

정규식을 사용하여 문자열의 특정 위치 범위를 매칭하는 것은 패턴을 찾기 위한 강력한 도구입니다. 이를 활용하면 문자열에서 특정 위치나 형식을 가진 정보를 쉽게 추출하거나 확인할 수 있습니다. 정규식을 사용할 때는 원하는 패턴을 정확히 표현하고, 필요한 위치 범위를 올바르게 설정하는 것이 중요합니다.