정규 표현식이란
정규 표현식(Regex)은 문자열 패턴을 정의하는 언어입니다. 40년간 텍스트 처리 작업을 해온 저로서는 정규 표현식이 개발자의 필수 도구라고 확신합니다. 검색, 유효성 검사, 텍스트 추출, 치환에 사용됩니다. 처음에는 어렵게 보이지만, 기본 문법을 익히면 매우 강력합니다.
기본 문법
리터럴 문자: abc는 'abc'를 매칭합니다. 메타문자: . (아무 문자), (0회 이상), + (1회 이상), ? (0 또는 1회). 문자 클래스: [abc] (a, b, c 중 하나), [a-z] (a부터 z), [^abc] (a, b, c 제외). 앵커: ^ (시작), $ (끝). 특수 클래스: \d (숫자), \w (단어 문자), \s (공백).
그룹과 캡처
괄호 ()로 그룹을 만듭니다. 매칭된 부분을 캡처하여 추출할 수 있습니다. 역참조 \1, \2로 이전 그룹을 참조합니다. (?:...)는 캡처하지 않는 그룹입니다. 명명된 그룹 (?P
실전 예제
이메일: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$. 전화번호: \d{3}-\d{3,4}-\d{4}. URL: https?://[\w.-]+(/[\w.-]). 주의: 완벽한 이메일/URL 검증은 매우 복잡합니다. 단순 검사에는 충분하지만, 엄격한 검증은 라이브러리를 사용하세요.
정규 표현식 팁
복잡한 패턴은 주석을 달거나 나눠서 작성합니다. regex101.com 같은 온라인 테스터로 실험합니다. 성능에 주의합니다. 역추적(backtracking)이 많으면 느려집니다. 탐욕적(.) vs 비탐욕적(.*?) 매칭을 이해합니다. 정규 표현식이 적합하지 않은 경우도 있습니다. HTML 파싱에는 파서를 사용하세요.
댓글
0