Jawaban:
Pastikan "Gunakan: Ekspresi reguler" dipilih dalam dialog Temukan dan Ganti:
Perhatikan bahwa untuk Visual Studio 2010, ini tidak berfungsi dalam ekstensi "Cari Cepat" Alat Daya Produktivitas Visual Studio (per pembaruan Juli 2011); sebagai gantinya, Anda harus menggunakan dialog Temukan dan Ganti penuh (gunakan Ctrl + Shift + H, atau Edit -> Temukan dan Ganti -> Ganti di File), dan ubah cakupan ke "Dokumen Saat Ini".
\)
ketika ekspresi reguler aktif ...
?
karakter perlu melarikan diri di Regex karena itu menandakan bahwa elemen sebelumnya adalah opsional. Dengan demikian, teks "Temukan apa" yang benar ~~\?
, dengan tanda tanya diloloskan oleh garis miring terbalik. Jawaban yang Anda berikan bekerja pada teks sampel karena dengan rakus akan menemukan tilde kedua dan mengkonsumsinya, namun jika tilde tunggal juga ada dalam teks di mana saja, itu juga akan diganti dengan baris baru dengan tidak tepat.
Jika Anda menetapkan bendera "Gunakan ekspresi reguler" maka \ n akan diterjemahkan. Tetapi perlu diingat bahwa Anda harus memodifikasi istilah pencarian Anda agar ramah regexp. Dalam kasus Anda itu harus melarikan diri seperti ini "\ ~ \ ~ \?" (tidak ada kutipan).
Jika Anda ingin menghindari kerepotan lolos dari karakter khusus dalam string pencarian dan penggantian saat menggunakan ekspresi reguler, lakukan langkah-langkah berikut:
Perhatikan bahwa meskipun Anda ingin secara manual mencocokkan pich untuk pencarian dan penggantian pertama, Anda dapat menggunakan "ganti semua" dengan aman untuk tiga langkah terakhir.
Misalnya, jika Anda ingin mengganti ini:
public IFoo SomeField { get { return this.SomeField; } }
dengan itu:
public IFoo Foo { get { return this.MyFoo; } }
public IBar Bar { get { return this.MyBar; } }
Anda akan melakukan penggantian berikut:
public IFoo SomeField { get { return this.SomeField; } }
→ XOXOXOXO
(regex off ).XOXOXOXO
→ XOXOXOXO\nHUHUHUHU
(regex aktif ).XOXOXOXO
→ public IFoo Foo { get { return this.MyFoo; } }
(regex off ).HUHUHUHU
→ public IFoo Bar { get { return this.MyBar; } }
(regex off ).Anda dapat menggunakan Pencarian dan Ganti Multiline di makro Visual Studio yang menyediakan GUI yang bagus untuk tugas tersebut.