[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)