Visual Studio Code는 어떤 종류의 Regex를 사용합니까?


130

Visual Studio Code에서 검색을 바꾸려고 할 때 정규식 버전이 전체 Visual Studio와 다릅니다. 특히 string (?<p>[\w]+)Visual Studio에서는 작동하지만 Visual Studio Code에서는 작동하지 않는 명명 된 그룹을 선언하려고합니다 . 오류가 발생했습니다 Invalid group.

이 특정 문제를 해결하는 것 외에도 Visual Studio Code의 Regexes의 맛에 대한 정보와 설명서를 찾을 수있는 곳을 찾고 있으므로 넘어 질 수있는 다른 질문에 스스로 도울 수 있습니다.

전체 Visual Studio는 여기에 설명 된대로 .NET 정규식을 사용 합니다 . 이 링크는 Stackoverflow의 다른 곳에서 VS Code에 대한 설명서로 언급되어 있지만 그렇지 않습니다.


VSCode는 JavaScript 기반 정규식 엔진을 사용하지만 동일하지 않습니다. 명명 된 캡처 그룹을 사용할 수 없습니다.
Wiktor Stribiżew

1
VSCode에서 사용되는 정규식에 대한 특정 문서는 없습니다. 그러나 소스 코드 를 살펴보면 많은 JS 코드를 볼 수 있습니다. lookbehinds를 사용하려고하면 lookaheads가 작동하는 동안 잘못된 패턴 오류가 발생합니다. 그리고 JS 정규 표현식은 [^]패턴을 기호와 일치하는 것으로 취급하는 유일한 정규 표현식 엔진입니다 . 따라서 JS 정규식 엔진이라는 것이 분명합니다.
Wiktor Stribiżew

5
표준은 ECMAScript 5 입니다.
Wiktor Stribiżew

1
확인. 확실하고 문서에 대한 링크가 있으면 대답 할 수 있습니다. 공감하겠습니다. ECMAScript 사양이 유일한 링크라고 생각하지 마십시오.
Eric

1
어떤 종류의 대답을 기대하십니까? 위에 게시 한 모든 내용은 JS 정규 표현식 구문 설명에 연결되어 있습니까? MDN 참조 처럼 ?
Wiktor Stribiżew

답변:


170

파일 찾기 / 바꾸기 사이드 바의 녹 정규식

MSFT의 Rob Lourens는 파일 검색에서 Rust 정규식을 사용한다고 썼습니다. 녹 언어 문서는 구문을 설명합니다.

GitHub의 Rob Lourens

파일 찾기 / 바꾸기 위젯의 JavaScript 정규식

MSFT의 Alexandru Dima는 찾기 위젯이 JavaScript 정규식을 사용한다고 썼습니다. Wicktor가 언급했듯이 ECMAScript 5의 설명서 는 구문을 설명합니다. MDN JavaScript 정규 표현식 안내서도 마찬가지 입니다.

GitHub의 Alexandru Dima

차이 테스트

파일에서 찾기 사이드 바는 지원하지 않지만 파일 (?=foobar)에서 찾기 위젯은 해당 미리보기 구문을 지원합니다.

위젯에서는 작동하지만 사이드 바에서는 작동하지 않는 미리보기를 표시합니다.

그룹 찾기 / 바꾸기

그룹, 괄호를 사용하여 찾기 / 바꾸기 위해 ()그룹과 $1, $2, $3, $n대체합니다.

다음은 예입니다.

전에:

이것은 바꾸기 전의 텍스트입니다.

후:

이것은 교체 후의 텍스트입니다.


12

Shaun의 대답 은 여전히 ​​옳지 만 업데이트를 추가하기 위해 최근 VS CodePerl 기반 PCRE2 엔진 사용을 선택하는 옵션을 추가 했습니다 . 설정 구성을 통해이를 활성화 할 수 있습니다.

이를 통해 lookaheads 및 역 참조와 같은 고급 정규식 작업을 수행 할 수 있습니다 . 그러나 아래에 언급했듯이 정규 표현식은 여전히 유효한 JavaScript 정규 표현식 이어야 합니다 .

VS 코드는 정규식 검색을 지원하지만 역 참조 및 둘러보기는 기본적으로 지원되지 않습니다. 그러나 search.usePCRE2 설정으로 이를 활성화 할 수 있습니다 . 이는 PCRE2 정규식 엔진을 사용하도록 ripgrep을 구성합니다. PCRE2는 다른 많은 기능을 지원하지만 열린 편집기는 편집기의 JavaScript 기반 검색을 사용하여 여전히 검색되므로 JavaScript 에서는 여전히 유효한 정규식 만 지원 합니다 .

그리고 보너스에 대한 당신이 멀티 라인 검색을하려고 여기 끝난 경우, VS 코드는 최근이 기능을뿐만 아니라 추가 !

여기에 이미지 설명을 입력하십시오


설정 메뉴에서 PCRE2를 활성화 할 수 있습니다. 환경 설정 ~ 설정으로 이동하고 '정규 표현식'을 검색
DougR

이 설정은 더 이상 사용되지 않으며 기본 엔진이 기능을 지원하지 않으면 PCRE2가 자동으로 대체로 사용됩니다.
케빈 락
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.