정규 표현식에서 소괄호 ()는 그룹화(grouping)에 사용되는 특수 문자(메타 문자)입니다. 따라서 실제 괄호 문자 자체를 검색하려면 반드시 역슬래시(\)로 이스케이프 처리해야 합니다.
아래 코드는 파이썬 정규식을 사용해 문자열 s에서 괄호를 검색하고, 문자열 s1에서 괄호를 제거하는 예제입니다.
예제
import re s = 'I love book()' result = re.search(r'\(\)', s) print(result.group()) s1 = 'I love book(s)' result2 = re.sub(r'[\(\)]', '', s1) print(result2)
코드 설명
- re.search(r'\(\)', s): 이스케이프된
\(\)패턴으로 문자열에서 연속된 괄호()를 검색합니다. 패턴 앞의r는 원시(raw) 문자열을 의미하며, 백슬래시가 정규식 그대로 해석되도록 합니다. - re.sub(r'[\(\)]', '', s1): 대괄호로 만든 문자 클래스(character class) 안에서 여는 괄호
(와 닫는 괄호)를 모두 찾아 빈 문자열로 치환합니다. 즉, 문자열에서 모든 괄호가 삭제됩니다.
실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
() I love books
핵심 정리
정규식에서 리터럴 괄호를 다룰 때 기억할 점은 두 가지입니다. 첫째, 일반적인 패턴 위치에서 괄호를 찾으려면 \(, \)처럼 이스케이프해야 합니다. 둘째, 문자 클래스 [\(\)] 안에 넣으면 두 종류의 괄호를 한 번의 re.sub() 호출로 동시에 처리할 수 있어, 괄호 제거 작업을 간결하게 구현할 수 있습니다.