웹 개발이나 코드 리팩토링을 하다 보면, 특정 패턴을 가진 문자열을 찾거나 수정할 일이 종종 생깁니다.
이럴 때 가장 강력한 도구가 바로 정규표현식(Regex) 입니다.
이번 글에서는 제가 최근 프로젝트에서 자주 사용한 몇 가지 정규표현식을 소개하고, 각각의 구성 요소와 의미를 정리하겠습니다.
useMappingKey( key )[ value ]
useMappingKey(someKey)[anotherValue]
이런 패턴을 일괄적으로 찾거나 수정해야할 때 아래와 같은 정규식이 필요하게 됩니다.
우선 내가 찾아야하는 패턴을 먼저 확인 후 정규식을 구성합니다.
^useMappingKey(공백이 있거나 없고)문자열(공백이 있거나 없고))[공백이 있거나 없고]문자열(공백이 있거나 없고)]
^useMappingKey\(\s*[^)]+\s*\)\[\s*[^\]]+\s*\]
\b는 부분 일치를 막고 정확한 단어만 찾을 때 유용합니다.
/\bgenerateMappingKey\b/
^는 문자열이 반드시 ^뒤에 오는 단어로 시작해야 매칭됩니다.
/^abc/
\(괄호는 정규식에서 특수문자이므로, 역슬래시()로 escape 해야 정확히 매칭됩니다.
/\(abc\)/
\s*\s*는 공백이 있어도 되고 없어도 됨을 의미합니다.
/a\s*b/
대괄호 안에서 ^는 "부정"을 뜻합니다.
/[^)]/
+는 적어도 1개 이상 문자 필요합니다.
*는 0개도 허용하는 반면, +는 반드시 있어야 매칭돼요.
/[^)]+/
그룹 캡처는 후처리할 때 매우 유용합니다. 예: match()[1]
/([^}]*)/
작은따옴표나 큰따옴표 중 하나만 있어도 매칭됩니다.
/["']abc["']/
따옴표로 감싸진 값에서 내용만 추출할 때 자주 사용됩니다.
/[^"']+/
정규표현식은 처음에는 복잡하고 생소할 수 있지만, 하나하나 의미를 이해하면 정확하고 강력한 문자열 필터링 도구가 됩니다.
앞으로도 실무에서 자주 쓰는 정규식 패턴들을 정리해보도록 하겠습니다.