2016-08-21 3 views
3

tmLanguage 파일에서 Ruby의 정규 표현식을 사용할 수 있다는 것을 알고 있지만 다른 구성 파일에서는 그렇지 않습니다. 확장 기능. 예를 들어 language contributionfirstLine 값을 가져옵니다. 문자 클래스를 사용할 때 오류가 발생합니다 (예 : \s 또는 \p{L}). 그러므로 나는 실제로 거기에 허용되는 것이 무엇인지 궁금합니다. 거기에 공백을 어떻게 맞추겠습니까?Visual Studio 코드에서 사용되는 정규식 변형은 무엇입니까?

업데이트 : 나는이 시도 코멘트 후 : lexer grammar G1;하거나 grammar G1; 같은 첫 번째 라인과 일치하도록되어

"firstLine": "^(lexer|parser)?\\s*grammar\\w+;" 

. 그렇지 않으면 유효성 검사가 없기 때문에 RE가 작동하는지 테스트 할 수있는 방법이 있습니까?

업데이트 2 :

그것은 올바른 문법을 사용하는 것이 필수적과 마술 작동합니다

"firstLine": "^(lexer|parser)?\\s*grammar\\s*\\w+\\s*;" 
+0

당신은 자신의 'firstLine' 값을 보여주지 않았기 때문에'\\ s'와 같이 백 슬래시를 벗어나는 것을 기억하는지 알 수 없습니다. –

+0

아니요, 저는'\ s'를 피하지 않았습니다. 내 tmLanguage 파일에는 필요하지 않았습니다. –

+0

업데이트시 끝나는 세미콜론이 선택 사항입니까? 당신은 그것을 필요로하는 것처럼 보입니다. 파일이 json이므로 백 슬래시를 이스케이프 처리해야합니다 (http://json.org/). –

답변

0

.NET 정규 표현식은 주로 펄 5를 기반으로하는 구문을 사용하지만 그것을 명명 된 캡처 그룹 및 오른쪽에서 왼쪽으로 매칭되는 것과 같은 몇 가지 새로운 기능을 추가하므로 두 기능을 동일한 것으로 생각해서는 안됩니다. 다음은 .NET 정규식에 대한 전체 MSDN 문서입니다 :

.NET Framework Regular Expressions

\s는 .NET에서 유효한 문자 클래스입니다,하지만 문제가 당신이하려고하는 코드를 보지 않고 정확히 무슨 말을하기가 어렵습니다. 앤드류는 맞을 수도 있습니다. 당신은 방금 \을 피하지 않았을 것입니다.

+0

VS 코드에서 명명 된 그룹화를 어떻게 수행합니까? –

+0

VS 코드는 .NET 정규식을 사용하지 않습니다. [this] (https://stackoverflow.com/questions/42179046/what-flavor-of-regex-does-visual-studio-code-use) 질문을 참조하십시오. – Eric

+0

@ Eric, 당신이 참조하는 질문은 검색 위젯에 관한 것이지 새로운 언어를 만드는 데 사용되는 구문 강조 표시 정의 파일에 관한 것이 아닙니다 ... –

관련 문제