[python] 정규표현식을 이용한 대괄호 안의 문자열 추출

정규표현식을 사용하면 문자열에서 패턴을 검색하고 추출할 수 있습니다. 이번에는 대괄호(‘[’, ‘]’) 안의 문자열을 추출하는 방법에 대해서 알아보겠습니다.

import re

def extract_bracket_string(text):
    pattern = r'\[(.*?)\]'  # 대괄호 안의 문자열을 추출하는 패턴
    brackets = re.findall(pattern, text)  # 패턴과 일치하는 모든 문자열 추출
    
    return brackets

text = '이 영화는 [아이언맨]과 [캡틴 아메리카]의 결전을 그린 작품입니다.'
bracket_strings = extract_bracket_string(text)
print(bracket_strings)

위의 코드를 실행하면 ['아이언맨', '캡틴 아메리카']라는 리스트가 출력되는 것을 확인할 수 있습니다.

이 코드에서는 re.findall() 함수를 사용하여 주어진 패턴과 일치하는 모든 문자열을 추출하였습니다. 패턴 \[[를, 패턴 \]]를 일치시키기 위해 백슬래시(\)를 사용하였습니다.

패턴 \(.*?\)에서 .은 어떤 문자라도 일치시키는 메타문자이며, *은 앞에 있는 문자가 0번 이상 반복됨을 나타내는 메타문자입니다. 그리고 ?는 가능한 한 가장 적게 일치시키는 것을 의미합니다. 이는 최소 일치(Minimal matching)을 수행하여 대괄호 안의 최소한의 문자열만 추출하도록 합니다.

이제 정규표현식을 활용하여 대괄호 안의 문자열 추출을 할 수 있게 되었습니다.


참고 자료

import re

def extract_bracket_string(text):
    pattern = r'\[(.*?)\]'
    brackets = re.findall(pattern, text)
    
    return brackets

text = '이 영화는 [아이언맨]과 [캡틴 아메리카]의 결전을 그린 작품입니다.'
bracket_strings = extract_bracket_string(text)
print(bracket_strings)