web-dev-qa-db-ja.com

Visual Studioでの検索と置換

Visual Studioで、選択範囲内を検索するときに、正規表現を使用して、行ごとに一致の最初のインスタンス(または2番目、3番目など)を置き換えたいと思います。どうすればいいですか?

検索と置換

foo1 = foo1;
foo2 = foo2;
...
foo20 = foo20;

以下に。

foo1 = bar1;
foo2 = bar2;
...
foo20 = bar20;
27
Joseph Le Brech

Visual Studio 2010以前では、後方参照付きの正規表現を使用します

Visual Studioの正規表現は、私が学んだものとはまったく異なります。正解を見つけるのに少し時間がかかりました。

検索する

{foo}{:d+} = \1\2

と置換する

\1\2 = bar\2

逆参照は、中括弧{foo}を使用してtaggingによって行われます。 :d+\d+と同じです

VS RegExの詳細はこちら

33

Visual Studio 2012では、C#と同じようにキャプチャグループと後方参照が使用されます。一般的な括弧でそれらをキャプチャし、$ 0、$ 1などでそれらを逆参照できます。

構文$1は検索置換に使用されますが、\1は、検索文字列の後方参照に使用されます。

71
So Many Goblins

私も正規表現なしで行うことができます:

置換= foo= bar

正規表現が必要な場合は、以下を使用できます。

foo(\d*) = foo(\d*);

と置換する:

foo\1 = bar\2;
2
Jayendra

ここに表示されているとおりに入力してください

探す: (\w+\d+\s*=\s*)[^\d]+(\d+);

置換:$1bar$2;


続きを読む: Visual Studioでの正規表現の使用

1
BJovke

Visual Studio 2019 Find/Replaceでこれと同じくらい簡単です。 FORTRAN IOフォーマット文字列をC++フォーマットに置き換える必要があり、正規表現の部分式と数を使用しました。

例:検索:「f9.8」、「f18.3」、インラインで、%9.8f、%18.3fに置き換えます
reg exp:Find =(f)(\ d +。\ d +)Replace =%$ 2f

1
userom