Bei der Suche in einer Auswahl in Visual Studio möchte ich die erste Instanz (oder die zweite, dritte usw.) einer Übereinstimmung pro Zeile mithilfe regulärer Ausdrücke ersetzen. Wie würde ich das machen?
Suchen und ersetzen
foo1 = foo1;
foo2 = foo2;
...
foo20 = foo20;
in die folgenden.
foo1 = bar1;
foo2 = bar2;
...
foo20 = bar20;
Verwenden Sie in Visual Studio 2010 und früheren reguläre Ausdrücke mit Rückverweisen
Die regulären Ausdrücke von Visual Studio unterscheiden sich völlig von dem, was ich gelernt habe. Ich brauchte einige Zeit, um die richtige Antwort herauszufinden.
Suchen nach
{foo}{:d+} = \1\2
Ersetzen mit
\1\2 = bar\2
Rückverweise werden von tagging
mit geschweiften Klammern {foo}
ausgeführt. :d+
ist für \d+
gleich
In Visual Studio 2012 werden Aufnahmegruppen und Rückreferenzen wie in C # verwendet. Sie können sie mit üblichen Klammern erfassen und mit $ 0, $ 1 usw. rückverweisen. Hoffe, es hilft!
Beachten Sie, dass die Syntax $1
für find-replace verwendet wird, \1
jedoch für Rückverweise in der Suchzeichenfolge.
Ich kann auch ohne reguläre Ausdrücke gemacht werden:
Ersetzen Sie = foo
durch = bar
.
Wenn ein regulärer Ausdruck benötigt wird, könnte man Folgendes verwenden:
foo(\d*) = foo(\d*);
Ersetzen mit:
foo\1 = bar\2;
Hier ist es, geben Sie genau so ein, wie es hier angezeigt wird
Suche: (\w+\d+\s*=\s*)[^\d]+(\d+);
Ersetzen: $1bar$2;
Weitere Informationen: Verwenden von regulären Ausdrücken in Visual Studio
So einfach ist das in Visual Studio 2019 Suchen/Ersetzen. Ich musste FORTRAN IO format string in C++ format ersetzen und Unterausdruck und Zahlen von regulären Ausdrücken verwenden.
Beispiel: Suchen Sie: "f9.8", "f18.3" und ersetzen Sie diese durch% 9.8f,% 18.3f
reg exp: Find = (f) (\ d +.\d +) Replace =% $ 2f