IT관련

VSCode에서 정규식(Regex) 사용하기

파란하늘999 2025. 10. 27. 17:49

VSCode(Visual Studio Code)는 강력한 정규식 지원을 제공합니다. 주로 **검색(Find)**과 바꾸기(Replace) 기능에서 사용되며, JavaScript 스타일의 정규식을 따릅니다. (ECMAScript 5 호환, 일부 ES6 기능 지원) 정규식을 활성화하려면 검색 창에서 .* 버튼을 클릭하거나, Ctrl+H (Windows/Linux) / Cmd+Option+F (Mac)로 바꾸기 창을 열고, .* 아이콘을 토글하세요.

1. 기본 사용법

  • 검색 창 열기: Ctrl+F (Windows/Linux) / Cmd+F (Mac).
  • 바꾸기 창 열기: Ctrl+H (Windows/Linux) / Cmd+Option+F (Mac).
  • 정규식 모드: 검색 필드 오른쪽의 .* 버튼 클릭 (활성화되면 하이라이트됨).
  • 주의: 정규식은 대소문자 구분되며, 멀티라인 검색은 Alt+R로 토글 가능.

2. 주요 정규식 패턴 예시

아래는 VSCode에서 자주 쓰이는 패턴들입니다. 테이블로 정리했어요.

패턴 설명 예시 매칭 예
. 임의의 한 문자 (줄바꿈 제외) a.c "abc", "a1c" (하지만 "a\nc"는 안 됨)
* 앞 패턴 0회 이상 반복 a* "", "a", "aaa"
+ 앞 패턴 1회 이상 반복 a+ "a", "aa" (""은 안 됨)
? 앞 패턴 0회 또는 1회 a? "", "a"
^ 문자열 시작 ^hello "hello world"의 "hello" 부분
$ 문자열 끝 world$ "hello world"의 "world" 부분
  OR (또는) cat|dog "cat" 또는 "dog"
() 그룹화 (캡처) (ab)+ "abab"에서 "ab" 그룹 반복
[] 문자 클래스 [a-z] 소문자 a~z 중 하나
[^] 부정 문자 클래스 [^0-9] 숫자가 아닌 문자
\d 숫자 (0-9) \d+ "123", "45"
\w 단어 문자 (a-z, A-Z, 0-9, _) \w+ "hello_world"
\s 공백 (스페이스, 탭, 줄바꿈) \s+ 여러 공백
\n 줄바꿈 line\n 줄 끝
(?=...) 긍정 선행 어서션 (앞에 ...이 올 때) foo(?=bar) "foobar"의 "foo" (bar가 뒤따름)
(?!...) 부정 선행 어서션 foo(?!bar) "foo baz"의 "foo" (bar가 안 오면)
  • 캡처 그룹: ()로 그룹화하면, 바꾸기에서 $1, $2 등으로 참조. 예: 검색 (foo)(bar) → 바꾸기 $2 $1 (결과: "bar foo").

3. 실전 예시

  • 이메일 찾기: [\w\.-]+@[\w\.-]+\.\w+ → "user@example.com" 같은 패턴 매칭.
  • 주석 제거: 검색 //.* → 바꾸기 (빈칸) → 한 줄 주석 전체 삭제.
  • 날짜 형식 변경: 검색 (\d{4})-(\d{2})-(\d{2}) → 바꾸기 $2/$3/$1 → "2023-10-27"을 "10/27/2023"으로 변환.
  • 멀티라인: 검색 ^function\s+(\w+).*?\{[\s\S]*?\} (멀티라인 모드 활성화) → 함수 전체 블록 찾기.

4. 팁과 주의사항

  • 테스트 도구: VSCode 확장 'Regex Previewer'나 'Regex' 설치 추천. 온라인 도구如 regex101.com (JavaScript 플래버 사용)에서 미리 테스트하세요.
  • 성능: 복잡한 정규식은 큰 파일에서 느려질 수 있음. *+는 비탐욕 모드(*?, +?)로 최적화.
  • 고급: VSCode는 PCRE(Perl Compatible) 일부 지원 안 함. 자세한 문서는 VSCode 공식 문서 참조.
  • 문제 발생 시: 설정 > 검색 > "검색: Use PCRE2" 토글 (기본 off).
반응형