Beim Versuch, in Visual Studio-Code zu suchen und zu ersetzen, stelle ich fest, dass sich die Regex-Variante von der von Visual Studio unterscheidet. Insbesondere versuche ich, eine benannte Gruppe zu deklarieren, mit string (?<p>[\w]+)
der in Visual Studio, jedoch nicht in Visual Studio Code funktioniert. Es wird sich mit dem Fehler beschweren Invalid group
.
Abgesehen von der Lösung dieses speziellen Problems suche ich nach Informationen über den Geschmack von Regexes in Visual Studio Code und darüber, wo ich Dokumentation dazu finden kann, damit ich mir bei anderen Fragen helfen kann, auf die ich stoßen könnte.
Full Visual Studio verwendet reguläre .NET-Ausdrücke, wie hier dokumentiert . Dieser Link wird als Dokumentation für VS-Code an anderer Stelle in Stackoverflow erwähnt, ist es aber nicht.
[^]
Muster als mit einem Symbol übereinstimmend behandelt . Es ist also klar, dass es sich um eine JS-Regex-Engine handelt.Antworten:
Rust Regex in der Seitenleiste Suchen / Ersetzen in Dateien
Rob Lourens von MSFT schrieb, dass die Dateisuche Rust Regex verwendet. Die Dokumentation zur Rust-Sprache beschreibt die Syntax.
JavaScript Regex im Widget Suchen / Ersetzen in Datei
Alexandru Dima von MSFT schrieb, dass das Such- Widget JavaScript-Regex verwendet. Wie Wicktor kommentierte, beschreibt die Dokumentation von ECMAScript 5 die Syntax. Dies gilt auch für das MDN JavaScript Regular Expression Guide .
Testen Sie den Unterschied
Die Seitenleiste zum Suchen in Dateien wird nicht unterstützt,
(?=foobar)
während das Widget zum Suchen in Dateien diese Lookahead-Syntax unterstützt.In Bezug auf Suchen / Ersetzen durch Gruppen
Zum Suchen / Ersetzen mit Gruppen, die Verwendung Klammern
()
zu gruppieren und$1
,$2
,$3
,$n
zu ersetzen.Hier ist ein Beispiel.
Vor:
Nach dem:
quelle
Shauns Antwort ist immer noch richtig. Um jedoch ein Update hinzuzufügen, hat VS Code kürzlich die Option hinzugefügt , sich für die Verwendung der Perl-basierten PCRE2-Engine zu entscheiden . Sie können dies über Ihre Einstellungskonfiguration aktivieren.
Auf diese Weise können Sie erweiterte Regex-Operationen wie Lookaheads und Backreferences ausführen . Aber wie bemerkt , unten, hat die Regex immer noch sein gültig JavaScript Regex .
Und als Bonus, wenn Sie hier versucht haben, mehrzeilige Suchvorgänge durchzuführen, hat VS Code kürzlich auch diese Funktion hinzugefügt !
quelle