5

私は複数のプロジェクトで解決策を持っており、深刻なグローバルな交換を行う必要があります。

置換後に一部の値が残るワイルドカード置換を行う方法はありますか?

たとえば、すべてのHttpContext.Current.Session[“whatevervalue”]HttpContext.Current.Session[“whatevervalue”].ToString()にしたい場合、渡される文字列値は尊重されますか? 「whatevervalue」を置き換えたくありません。パターンが一致する場所に .ToString() を追加したいだけです。

これは Visual Studio で可能ですか?

4

6 に答える 6

18

最初に、万が一に備えてプロジェクトをバックアップします...大量の交換を行う前に、常に良い考えです。

次に、[検索/置換] ダイアログで、[正規表現を使用] チェックボックスを選択します。

[検索] ボックスで、次のパターンを使用します。

HttpContext\.Current\.Session\["{.@}"\]

[置換] ボックスで、次を使用します。

HttpContext.Current.Session["\1"].ToString()
于 2008-10-13T20:54:14.410 に答える
4

簡単...正規表現とグループ化を使用します。

検索対象: (HttpContext.Current.Session[“whatevervalue”])

置き換え: \0.ToString();

Use: をチェックして、正規表現を選択することを忘れないでください

于 2008-10-13T20:50:06.710 に答える
4

[検索オプション] エキスパンダーを開き、[正規表現を使用] オプションを選択します。それを行った後、これらを検索/置換エントリとして使用する必要があります。

探す:

HttpContext\.Current\.Session\[{("([^"]|\")*")}\]

交換:

HttpContext.Current.Session[\1].ToString()

追記:

正規表現オプションを有効にすると、右向きの三角形のボタンを使用して、Visual Studio の正規表現構文のスニペットにアクセスできるようになります。

また、Visual Studio の正規表現構文は、Visual Studio 6 (またはそれ以前?) の時代から変更されていないため、かなりゲットーであることに注意してください。

たとえば、二重引用符の前のバックスラッシュが適切にエスケープされていないため、上記の検索正規表現が壊れていると思うかもしれませんが、実際には二重バックスラッシュをそこに置くと、式が壊れますが、修正されません。

于 2008-10-13T20:56:56.480 に答える
2

Visual Studio 2013 では、最終的に標準の RegEx に切り替えられたように見えるため、これらの回答はどれも機能しないようです。ただし、RegEx の専門家ではない人や、古い VS Find/Replace RegEx 構文に慣れている人は、RegEx ショートカット ボタンが非常に便利であることに気付くでしょう。

検索/置換/サラウンドの例など、詳細については、この回答を参照してください。

「検索と置換」ではなく、Visual Studio の「検索と囲み」

于 2014-10-28T18:14:47.363 に答える
0

このようなタスクにはVisual Assistを使用できます。これは、さまざまな種類のリファクタリングのための強力なツールです。

于 2008-10-13T20:50:57.613 に答える
0

また、 http: //www.devexpress.com/Products/NET/IDETools/RefactorASP/ で入手できる無料のダウンロード ツール Refactor の使用を検討することもできます。

これは、メンバーの名前をよりわかりやすい名前に変更することと呼ばれる、検索と置換だけではありません。そのさまざまな機能は、コードを改善するのに簡単に役立ちます。

于 2008-10-13T21:42:26.013 に答える