検索用の.NET正規表現& C#の.vdprojファイルのProductName値を置き換える

StackOverflow https://stackoverflow.com/questions/1817108

  •  08-07-2019
  •  | 
  •  

質問

私は、Visual Studio 2003が生成したSetup .vdprojファイル内のさまざまな設定を更新できるNAnt拡張タスクを作成しようとしていますが、次のヘルプが必要です。

具体的には、RegEx式を使用して検索し、見つかった場合は、ProductName値に割り当てられた値の文字列値をその全体の新しい文字列値に置き換えます。

" ProductName"を変更するRegEx式セットを探しています。求められた文字列が" ProductName"で始まるもの以外に依存することなく、他の値に=" 8&quot ;:そして1つ以上の文字があり、"で終わりますマーク。私は次のことを試してみました:

次のコードフラグメントを実行する前に、.vdprojファイルのProductNameは次のようになります。

"ProductName" = "8:My Simple .NET Application"

...およびC#のコードフラグメント:

string _theProductName = "My Other Native Application";

Regex productNameExpression = new Regex( @"(?:\""ProductName\"" = \""8:*)" );

_theProjectFileContents = 
productNameExpression.Replace(_theProjectFileContents, 
                              "\"ProductName\" = \"8:" + _theProductName + "\"" );

bool updatedProductName = 
(_theProjectFileContents.IndexOf(_theProductName) >= 0);

上記のコードフラグメントを実行すると、.vdprojファイルのProductNameは次のようになります。

"ProductName" = "8:My Simple .NET Application"My Other Native Application"

閉じるが、「My Other Native Application」を期待していた。 " My Simple .NET Application"を置き換えて、追加しないでください。

洞察とヘルプは大歓迎です。

役に立ちましたか?

解決

あなたはほとんどそこにいます-1つだけが欠落しています。
このように正規表現を変更すると、幸福が続くはずです...

Regex productNameExpression = new Regex(@"(?:\""ProductName\"" = \""8:.*)"); 

に注意してください。 8の後:

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top