Apakah ada cara untuk membuat Visual Studio melakukan penggantian regex di beberapa baris (biarkan pertandingan melewati batas garis)? Saya tahu ada banyak editor yang dapat saya gunakan untuk ini, tetapi tampaknya aneh bahwa fitur ini telah ditinggalkan di Visual Studio. Apakah saya melewatkan sesuatu?
sumber
end
) jadi tidak serakah. yaitu:start(.*\n)*.*?end
start
danend
. Jika Anda ingin menemukan versi berikutnya,end
gunakan versi non-serakah:,(?s)start.*?end
ataustart(.*\n)*?.*?end
.(?s)
?Ekspresi reguler telah berubah di Visual Studio 2013 . https://msdn.microsoft.com/en-us/library/2k3te2cs(v=vs.120).aspx
Untuk mencocokkan ekspresi pada dua baris, kodenya sekarang menjadi:
StartOfExpression.*\r?\n.*EndOfExpression
sumber
</label>.*\r?\n.*<div
mana\r?\n
carriage_return-new_line yang jelas dan.*
untuk mencocokkan kemungkinan tab / spasiIni berfungsi hari ini di Visual Studio 2012:
fooPatternToStart.*(.*\n)+?.*barPatternToEnd
Lihat bagaimana
(.*\n)+?
bagian melakukan pencocokan di beberapa baris, tidak serakah.fooPatternToStart
adalah beberapa pola regex di garis awal Anda, sedangkanbarPatternToEnd
pola Anda ditemukan di garis lain di bawah, mungkin banyak garis di bawah ...Contoh ditemukan di sini .
Sederhana dan efektif :)
Catatan: sebelum VS2012, pola yang berhasil adalah:
fooPatternToStart.(.\n)+@.*barPatternToEnd
sumber
sprintf.*(.*\n)+?.*log.*(.*\n)+?.*__func__
berfungsi untuk mencarilog
antarasprintf
dan__func__
, terima kasih! Tho .. tampaknya melihat ke tak terhingga untuk itu .. jika hanya ada cara untuk membatasi jumlah barisCatatan: jawaban ini menggunakan sintaks regex yang digunakan dalam Visual Studio hingga dan termasuk VS 2012. Di VS 2013 dan yang lebih baru, sintaks regex telah berubah.
Anda bisa memasukkannya ke
\n
dalam ekspresi. Sebagai contoh, berikut adalah regex yang saya gunakan untuk "membersihkan" skrip SQL yang dibuat secara otomatis dari apa pun yang bukan prosedur tersimpan (ini akan cocok dengan blok teks yang dimulai dengan baris yang berisi "Objek:" diikuti oleh sesuatu yang bukan "StoredProcedure", lalu mencocokkan baris berikut hingga baris terdiri dari kata "GO"):/\*+ Object\::b:b~(StoredProcedure)(.*\n)#GO\n
sumber
Anda mungkin perlu menggunakan \ r \ n di akhir ekspresi Anda.
sumber
Multi-baris non-serakah pengambilan karakter apa pun, Visual Studio 2013+:
.*?\r?\n.*?
Versi serakah dalam jawaban Giles Roberts.
sumber
Untuk semua orang yang datang ke sini saat mencari VS Code, saya menggunakan ini untuk mencocokkan apa pun dari
script
mana saja dengan 2 baris baru (baris baru dikecualikan):script(.|\n)+?(?=\n\n)
mengganti
script
dan\n\n
mencocokkan segala sesuatu di antara mereka.sumber