88

それはできますか?VS2005 と VS2008 と VS2010 を使用しています。

私は正規表現を意味するのではありません-それはその場所を持っています-しかし、プレーンな古いテキストの検索と置換. \n タグを使用して正規表現で (ピンチで) 実行できることはわかっていますが、正規表現のエスケープ文字に巻き込まれたくないことに加えて、読みやすさの問題もあります。

それができない場合、人々が使用している単純で単純な (無料の) 代替手段は何ですか? これには、独自のマクロをノックアップする必要はありません。

4

9 に答える 9

65

やっと見つけた..

外部マクロをダウンロードしてロードする必要はありません。

少なくとも組み込みマクロを使用して Visual Studio 2008 で動作します。:)

手順 :
1) 検索するテキストを選択します。
2) "Alt+F8" を押すか、"Tools -> Macros -> Macro Explorer" を開きます。
3) "Sample -> Utilities -> FindLine" をダブルクリックします。(「検索」フィールドに選択内容がロードされた状態で検索ボックスが開きます。「検索」フィールドに表示されるテキストが切り捨てられても心配しないでください。信じてください。フィールドにはすべてが含まれています。 ) )
4) [検索と置換] ダイアログ ボックスの [クイック置換] ボタンをクリックします。置換テキストを入力します。
5) 必要に応じて 3 つのボタンのいずれかをクリックしてください。:)

万歳..その作業..それを行うための簡単な方法ではないかもしれませんが、MSで知っている..単純で簡単なものは何もありません.. :)

于 2010-06-08T10:49:30.593 に答える
27

これは現在、Visual Studio 2012 で機能します。

fooPatternToStart.*(.*\n)+?.*barPatternToEnd

(.*\n)+?パーツが複数の行にわたってどのように一致するかを見てください。貪欲ではありません。
fooPatternToStart開始行の正規表現パターンbarPatternToEndですが、下の別の行、おそらく下の多くの行で見つけるパターンです...

例はここにあります

シンプルで効果的:)

注: VS2012より前では、機能するパターンは次のとおりでした。fooPatternToStart.(.\n)+@.*barPatternToEnd

于 2013-01-18T14:36:21.003 に答える
20

このブログエントリをご覧になることをお勧めします。

VisualStudioでの複数行の検索と置換

検索をエスケープし、VSの検索と置換ダイアログを表示するためのマクロコードを提供します。

于 2010-02-18T10:15:19.507 に答える
18

[検索と置換] ダイアログの [正規表現を使用] チェックボックスをクリックすると、複数行の表現を検索できます。改行は で示され\nます。

ここに画像の説明を入力

于 2012-08-23T03:14:28.393 に答える
2

そのマイクロソフトによってのみ提供されます。https://visualstudiogallery.msdn.microsoft.com/699CE302-B0D4-4083-BE0E-1682E873CEBFを確認してください。

正規表現のみを使用します。ただし、正規表現をよく知らない人は、それを使用することをお勧めします。

于 2015-03-26T10:39:48.913 に答える
1

MultiLinereplaceを完全にサポートするUltraEditでファイルを開くこともできます。一度だけ使用する場合は、試用版を使用できます。

于 2012-01-20T08:45:11.967 に答える
1

Notepad++ の最新バージョン (この投稿時点) は、複数行の検索/置換を行います。これが尋ねられたとき、これが本当だったかどうかはわかりません。しかし、Visual Studio でマクロがサポートされなくなったため、これは現在関連しています。

于 2015-09-22T22:24:46.820 に答える
1

上記の 11 年 8 月 19 日 9:52 の Andrew Corkery のコメントについて:

複数行の置換文字列も指定したい場合は、マクロ コードを編集し、以下に示すように置換テキストを設定します。これにより、必要なわずかな変更だけで交換を「微調整」することができます。

 Sub FindLine()
    Dim textSelection As TextSelection

    textSelection = DTE.ActiveDocument.Selection
    textSelection.CharLeft(True)
    DTE.ExecuteCommand("Edit.Find")
    DTE.Find.FindWhat = textSelection.Text

    'also preset replacement text with current selection
    DTE.Find.ReplaceWith = textSelection.Text
End Sub
于 2013-02-14T14:05:51.740 に答える