Beim Versuch, in Visual Studio Code zu suchen und zu ersetzen, stelle ich fest, dass sich die Regex-Variante von der in Visual Studio unterscheidet. Insbesondere versuche ich, eine benannte Gruppe mit string (?<p>[\w]+)
zu deklarieren, die in Visual Studio, aber nicht in Visual Studio-Code funktioniert. Es wird mit dem Fehler beschweren Invalid group
.
Abgesehen von der Lösung dieses speziellen Problems suche ich nach Informationen über die Regex-Variante in Visual Studio Code und wo sich Dokumentation dazu befindet, damit ich mir bei allen anderen Fragen, auf die ich stoßen könnte, helfen kann.
In Full Visual Studio werden reguläre .NET-Ausdrücke wie folgt verwendet hier . Dieser Link wird als Dokumentation für VS-Code an anderer Stelle in Stackoverflow erwähnt, ist es aber nicht.
Rob Lourens von MSFT schrieb, dass die Dateisuche Rust Regex verwendet. Die Rust-Sprachdokumentation beschreibt die Syntax.
Alexandru Dima von MSFT schrieb, dass das Such-Widget JavaScript-Regex verwendet. Wie Wicktor kommentierte, beschreibt Dokumentation von ECMAScript 5 die Syntax. Das Gleiche gilt für MDN JavaScript-Handbuch für reguläre Ausdrücke .
Die Seitenleiste "In Dateien suchen" unterstützt (?=foobar)
nicht, wohingegen das Widget "In Dateien suchen" diese Lookahead-Syntax unterstützt.
Verwenden Sie zum Suchen/Ersetzen durch Gruppen die Klammern ()
zum Gruppieren und $1
, $2
, $3
, $n
ersetzen.
Hier ist ein Beispiel.
Vor:
Nach:
Shauns Antwort ist immer noch korrekt, jedoch um ein Update hinzuzufügen kürzlich VS Code hinzugefügt die Option, 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 reguläre Ausdrücke wie Lookaheads und Rückverweise ausführen. Aber als notiert unten muss der reguläre Ausdruck immer noch gültiger JavaScript-regulärer Ausdruck sein.
VS Code unterstützt zwar die Suche nach regulären Ausdrücken, jedoch werden Rückverweise und Lookaround standardmäßig nicht unterstützt. Sie können diese aber mit der Einstellung search.usePCRE2 aktivieren. Dadurch wird ripgrep für die Verwendung der PCRE2-Regex-Engine konfiguriert. Während PCRE2 viele andere Funktionen unterstützt, unterstützen wir nur reguläre Ausdrücke, die in JavaScript noch gültig sind , da offene Editoren weiterhin mit der JavaScript-basierten Suche des Editors durchsucht werden .
Und für einen Bonus , wenn Sie hier gelandet sind und versucht haben, mehrzeilige Suchen durchzuführen, VS Code hat diese Funktion kürzlich ebenfalls hinzugefügt !