検索と置換-改行または改行を追加


183

解析する文字列が続く場合。

ford mustang,10,blue~~?bugatti veyron,13,black

私は交換したい~~?としcarriage return

\n文字列を追加するだけで置き換える"\n"

これはどのように行うことができますか?

回答:


272

[検索と置換]ダイアログで[使用:正規表現]が選択されていることを確認します。

検索/置換ダイアログ正規表現を使用

Visual Studio 2010の場合、これはVisual Studio Productivity Power Toolsの「Quick Find」拡張機能では機能しないことに注意してください(2011年7月の更新時点)。代わりに、完全な検索と置換ダイアログ(Ctrl + Shift + Hまたは編集->検索と置換->ファイル内の置換を使用)を使用し、スコープを「現在のドキュメント」に変更する必要があります。


5
検索テキストの右側にある[再生]ボタンを使用するのも便利です
Cel

3
かっこなどの特殊文字を照合する場合は、たとえば\)正規表現がオンになっている場合などに忘れずに使用してください...
Cel

2
この?文字は、前の要素がオプションであることを示しているため、正規表現でエスケープする必要があります。したがって、正しい「Find what」テキストは~~\?、疑問符がバックスラッシュでエスケープされています。2番目のチルドを欲張って見つけて消費するため、あなたが出した答えはサンプルテキストで機能しますが、単一のチルドもテキスト内のどこかに存在する場合、不適切に改行に置き換えられます。
ErikE

Productivity Power Toolsがインストールされている場合でも、ctrl + shit + hを押してからctrl + hを実行すると、ネイティブのVisual Studio検索/置換ウィンドウを開くことができます。
2015

「正規表現を使用」が選択されている場合、「\ n」を使用して改行を検索(および置換)することもできます。
Jacob Lockard

28

[ \x0d\x0a正規表現を使用する]チェックボックスをオンにした状態で[置換]ボックスを試し、Visual Studioの検索/置換を使用してキャリッジリターン+ラインフィードを取得することもできます。\n(改行)の使い方は\x0a


13

「正規表現を使用する」フラグを設定すると、\ nが翻訳されます。ただし、正規表現に対応するには、検索語句を変更する必要があることに注意してください。あなたの場合、この「\〜\〜\?」のようにエスケープする必要があります (引用符なし)。


3
「〜」は正規表現でエスケープする必要はありません。それは文字通りの文字です。これは誤りです。
ErikE

12

正規表現を使用するときに、検索文字列と置換文字列で特殊文字をエスケープする手間を回避するには、次の手順を実行します。

  1. 元の文字列を検索し、正規表現をオフにして "UniqueString42"に置き換えます。
  2. 「UniqueString42」を検索して、「UniqueString42 \ nUniqueString1337」に置き換え、正規表現
  3. 「UniqueString42」を検索し、正規表現offを使用して、置換の最初の行(多くの場合、元の文字列)に置き換えます。
  4. 「UniqueString42」を検索し、正規表現をオフにして、置換の2行目に置き換えます。

最初の検索と置換で手動で一致を選択したい場合でも、最後の3つのステップで「すべて置換」を安全に使用できることに注意してください。

たとえば、これを置き換える場合:

public IFoo SomeField { get { return this.SomeField; } }

それと:

public IFoo Foo { get { return this.MyFoo; } }
public IBar Bar { get { return this.MyBar; } }

次の置換を行います。

  1. public IFoo SomeField { get { return this.SomeField; } }XOXOXOXO(正規表現はオフ)。
  2. XOXOXOXOXOXOXOXO\nHUHUHUHU(正規表現)。
  3. XOXOXOXOpublic IFoo Foo { get { return this.MyFoo; } }(正規表現はオフ)。
  4. HUHUHUHUpublic IFoo Bar { get { return this.MyBar; } }(正規表現はオフ)。

@Alexこの問題の実用的な解決策があり、正規表現に変換するときに手動で検索をエスケープしてテキストを置き換える必要がなく、次の10分間でそのように作成されたモンスターを修正する場合、私は非常にうれしいですそれは、私の答えは単に醜いハックだからです。しかし、ご覧のとおり、追加のプラグインなしで標準的なVisual Studioで機能する他のすべての回答では、正規表現を使用する必要があるため、単純なテキストをエスケープします。
スザンヌデュペロン2013年

2
悪い意味ではありませんでした。スマイリーを入れるのを忘れてしまったことをお詫びします:D解決策として、私はVSを含むものを持っていません。しかし、正規表現(notepad ++など)をサポートする適切な外部エディターはどれも非常にうまく機能することがわかりました。
アレックス

2
UltraEditは検索置換の王様です。ここでは、改行、改行、またはそれらの行をマークして検索を開始するだけで、何でも検索できます。-あなたはN T \は\ rと^ TのためのR ^、nは\ ^のために入力するSimpyの置き換えのためとして-だけVS2010は、同じことを行うならば:-)
MIROS

いつでもregex101.comにアクセスして、検索文字列がリテラル文字と一致するかどうか、またはRegex制御文字として解釈されるかどうかを確認できます。
ErikE

7

タスクに優れたGUIを提供するVisual Studioマクロで複数行の検索と置換を使用できます。

ここに画像の説明を入力してください


いくつかの追加手順がないと、Visual Studio 2017では機能しないようです。つまり、「ファイルを検索」をクリックして、ダイアログのスコープを変更する必要があります。ショートカットのデフォルトは、f#インタラクティブになりました。
Mark Schultheiss 2017
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.