3

C# で使用している正規表現構文を使用して、複数のファイルを検索および置換できる適切なツールを探しています。通常、私は Visual Studio でこれを行いますが、最も奇妙な正規表現構文を使用しています (これは、ファイル内のテキストを手動で置き換えるよりも高速であることを意図しています)。

これまでのところ、Windows grep を試してみましたが、以下の正規表現が気に入りませんでした。問題の正規表現は

<see cref="(?<class>.+)">(.+)</see>

と交換するには

<see cref="${class}"/>

または、これを Visual Studio の構文に変換しても問題ありません。

Jeffのブログに、これに関するすべての記事があります。

4

5 に答える 5

3

Visual Studioでは、次の正規表現を使用してこれを行うことができます。

\<see cref="{.+}"\>.+\</see\>

交換:

<see cref="\1" />

[検索と置換]ダイアログで[使用/正規表現]を選択することを忘れないでください。

VisualStudioが.Netフレームワークと同じ正規表現構文をサポートしていないのは残念だと長い間考えていました。

于 2009-02-26T13:51:04.283 に答える
3

Visual Studioで、次を検索します。

\<see cref="{:i}"\>.*\</see\>

と置き換えます:

<see cref="\1"/>

{}はVSグループ化演算子です。名前はありません。置換では、\nがfind式のn番目のグループの値に使用されます。

新しい行やその他の空白を考慮する必要がある場合は、:iとパーツを微調整できます。.*

于 2009-02-26T13:51:13.473 に答える
3

いくつかの選択肢があります:

  • 定期的に行う場合は、おそらく最も完全で使いやすいPowerGrepを使用します。

  • その兄弟であるRegexBuddyにも、それほど包括的ではありませんが、Grep 機能があります。

  • Perl を恐れていない場合は、そのコマンド ラインを検索および置換ツールとして使用することもできます。

  • それ以外の場合は、 Windowsで動作する由緒あるsedがまだあります。

于 2009-02-26T14:17:08.793 に答える
1

notepad++ は非常に人気があり、軽量で、この機能を備えています。試してみましたか?:

http://notepad-plus.sourceforge.net/uk/site.htm

編集:私のリンクは古くなっているように見えますが、この使用法はごく最近のものです:

http://www.opensourcereleasefeed.com/release/show/notepad-v5-2-released-replace-in-files-feature-added

于 2009-02-26T13:33:30.050 に答える