vscode 검색 기능 OR AND 정규 표현식

[vscode] 검색 기능. OR, AND – 정규 표현식

VS Code에서 코드를 수정하거나 분석할 때 특정 변수나 함수를 찾는 일은 정말 흔하다. 그런데 가끔은 키워드 두 개를 조합해서 검색해야 할 때가 있다. 예를 들어 user 또는 client가 포함된 라인을 찾거나, request와 response가 둘 다 들어간 라인을 찾아야 하는 경우다. 이럴 때 정규 표현식을 쓰면 아주 편하다.

OR 검색: 둘 중 하나만 있어도 OK

코드를 보다 보면 비슷한 의미를 가진 여러 단어 중 하나라도 포함된 라인을 모두 찾고 싶을 때가 있다. 예를 들어, error 또는 warning 메시지를 한 번에 확인하고 싶을 수 있다. 이럴 때 OR 검색을 사용하면 된다.

기본 사용법: | (파이프)

정규 표현식에서 | (파이프) 기호는 ‘또는(OR)’을 의미한다. 사용법은 아주 간단하다. 찾고 싶은 단어들 사이에 |를 넣어주기만 하면 된다. VS Code 검색창(Ctrl+Shift+F)을 열고 정규 표현식 모드(.* 아이콘)를 활성화하는 것을 잊지 말자.

명령어는 다음과 같다.

Plaintext
단어1|단어2

VS Code에서 ‘protected|private’을 검색하는 화면]

예를 들어 error|warning이라고 검색하면, ‘error’가 포함된 라인과 ‘warning’이 포함된 라인을 모두 찾아준다. 일일이 두 번 검색할 필요가 없으니 시간이 절약된다.

AND 검색: 둘 다 반드시 포함해야 할 때

이번엔 반대로, 여러 키워드가 한 라인에 모두 포함된 경우만 찾고 싶을 때다. 예를 들어, match라는 단어와 line이라는 단어가 동시에 사용된 코드를 찾아야 한다고 해보자. 이럴 때 AND 검색이 필요하다.

순서 상관없는 AND: (?=.*단어1)(?=.*단어2)

두 단어가 한 줄에 있기만 하면 되고 순서는 상관없을 때가 많다. 이럴 땐 ‘lookahead’라는 정규 표현식 문법을 사용하면 된다. 좀 복잡해 보이지만 패턴은 정해져 있으니 그대로 가져다 쓰면 된다.

Plaintext
(?=.*단어1)(?=.단어2).
VS Code에서 ‘(?=.*prot)(?=.pri).’를 검색하는 화면

(?=.*match)(?=.*line).* 이렇게 검색하면 match와 line의 순서에 상관없이 두 단어가 모두 포함된 라인을 찾아준다. ‘line that matches’ 와 ‘matches this line’을 모두 검색 결과로 보여주는 식이다. 각 (?=.*단어)가 ‘이 단어가 존재하는가?’를 확인하는 조건이라고 생각하면 쉽다.

순서가 중요한 AND: 단어1.*(?=단어2)

가끔은 특정 단어 뒤에 다른 단어가 나오는, 순서가 중요한 경우도 있다. match라는 단어 뒤에 line이 나오는 경우만 찾고 싶다면 아래와 같이 작성할 수 있다.

Plaintext
단어1.(?=단어2)
VS Code에서 ‘match.(?=line)’을 검색하는 화면

match.*(?=line) 패턴은 ‘match’라는 단어로 시작하고, 그 뒤에 어떤 문자(.*)가 온 다음, line이라는 단어가 나오는 라인을 찾는다. (?=line) 부분 덕분에 검색 결과 자체에는 line이 포함되지 않고 match 까지만 하이라이트 되지만, 라인을 찾는 조건으로는 제대로 동작한다.

마치며

VS Code의 검색 기능은 정말 강력하다. 특히 정규 표현식 옵션을 활용하면 단순한 텍스트 찾기를 넘어 훨씬 복잡하고 유용한 검색이 가능하다. 처음에는 정규 표현식이 낯설고 어려워 보일 수 있다. 하지만 | (OR)와 (?=.*) (AND) 패턴 몇 가지만 알아둬도 코드 분석이나 디버깅 속도가 훨씬 빨라질 거다.

댓글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다