Visual Studioで、選択範囲内を検索するときに、正規表現を使用して、行ごとに一致の最初のインスタンス(または2番目、3番目など)を置き換えたいと思います。どうすればいいですか?
検索と置換
foo1 = foo1;
foo2 = foo2;
...
foo20 = foo20;
以下に。
foo1 = bar1;
foo2 = bar2;
...
foo20 = bar20;
Visual Studio 2010以前では、後方参照付きの正規表現を使用します
Visual Studioの正規表現は、私が学んだものとはまったく異なります。正解を見つけるのに少し時間がかかりました。
検索する
{foo}{:d+} = \1\2
と置換する
\1\2 = bar\2
逆参照は、中括弧{foo}
を使用してtagging
によって行われます。 :d+
は\d+
と同じです
Visual Studio 2012では、C#と同じようにキャプチャグループと後方参照が使用されます。一般的な括弧でそれらをキャプチャし、$ 0、$ 1などでそれらを逆参照できます。
構文$1
は検索置換に使用されますが、\1
は、検索文字列の後方参照に使用されます。
私も正規表現なしで行うことができます:
置換= foo
と= bar
。
正規表現が必要な場合は、以下を使用できます。
foo(\d*) = foo(\d*);
と置換する:
foo\1 = bar\2;
Visual Studio 2019 Find/Replaceでこれと同じくらい簡単です。 FORTRAN IOフォーマット文字列をC++フォーマットに置き換える必要があり、正規表現の部分式と数を使用しました。
例:検索:「f9.8」、「f18.3」、インラインで、%9.8f、%18.3fに置き換えます
reg exp:Find =(f)(\ d +。\ d +)Replace =%$ 2f