Bul ve değiştir - Satır başı ekle VEYA Newline


183

Aşağıdaki dizenin ayrıştırılması durumunda.

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

Yerine ~~?bircarriage return

İle değiştirmek \nsadece dizeyi ekler"\n"

Bu nasıl yapılabilir?

Yanıtlar:


272

Bul ve Değiştir iletişim kutusunda "Kullan: Normal ifadeler" öğesinin seçili olduğundan emin olun:

İletişim Kutusunu Bul / Değiştir Normal ifadeler kullanma

Visual Studio 2010 için, bunun Visual Studio Productivity Power Tools'un "Hızlı Bul" uzantısında (Temmuz 2011 güncellemesinden itibaren) çalışmadığını unutmayın ; bunun yerine, tam Bul ve Değiştir iletişim kutusunu kullanmanız (Ctrl + Shift + H veya Düzenle -> Bul ve Değiştir -> Dosyalarda Değiştir) kullanmanız ve kapsamı "Geçerli Belge" olarak değiştirmeniz gerekir.


5
Bul metninin sağındaki "Oynat" düğmesini kullanmak da kullanışlı
Cel

3
ve parantez gibi özel karakterleri eşleştirmeye çalışıyorsanız, örneğin \)düzenli ifadeler açıkken kullanmayı unutmayınız ...
Cel

2
?Önceki eleman isteğe bağlı olduğunu belirtir, çünkü karakter Regex kaçan gerekmektedir. Böylece, doğru "metni bul" metni, ~~\?soru işareti ters eğik çizgiden kaçtı. Verdiğiniz cevap örnek metin üzerinde çalışır, çünkü ikinci tilde açgözlülükle bulur ve onu tüketir, ancak metinde herhangi bir yerde tek bir tilde varsa, yanlış bir şekilde yeni satırla değiştirilir.
ErikE

Productivity Power Tools yüklüyse, yerel Visual Studio Bul / Değiştir penceresini açmak için ctrl + shit + h ve sonra ctrl + h yapabilirsiniz.
Neb

"Normal İfadeleri Kullan" seçilirse, yeni satırları bulmak (ve değiştirmek) için "\ n" kullanılabilir .
Jacob Lockard

28

Ayrıca \x0d\x0a, Visual Studio Bul / Değiştir'i kullanarak satır başı + satır beslemesi almak için "Düzenli İfade Kullan" işaretli "Şununla değiştir" kutusunu da deneyebilirsiniz . \n(Satır besleme) kullanmak şununla aynıdır:\x0a


13

"Normal ifadeleri kullan" bayrağını ayarlarsanız \ n çevrilir. Ancak, regexp dostu olmak için arama teriminizi değiştirmeniz gerektiğini unutmayın. Sizin durumunuzda bu "\ ~ \ ~ \?" (alıntı yok).


3
'~' ifadesinin Regex'te kaçmasına gerek yoktur. Gerçek bir karakter. Bu yanlış.
ErikE

12

Normal ifadeler kullanırken arama ve değiştirme dizenizdeki özel karakterlerden kaçma zorluğundan kaçınmak istiyorsanız, aşağıdaki adımları uygulayın:

  1. Orijinal dizenizi arayın ve normal ifadeler kapalıyken "UniqueString42" ile değiştirin .
  2. "UniqueString42" ifadesini aratın ve yerine "UniqueString42 \ nUniqueString1337" yazın .
  3. "UniqueString42" için arama yapın ve yerine, değiştirdiğiniz ilk satırla (genellikle orijinal dizenizle) düzenli ifadeler kapalı olarak yerleştirin .
  4. "UniqueString42" ifadesini arayın ve yerine, değiştirdiğiniz ifadenin ikinci satırı, normal ifadelerle yerleştirin kapalı olarak yerleştirin .

İlk arama ve değiştirme için eşleşmeleri manuel olarak seçmek isteseniz bile, son üç adımda "tümünü değiştir" i güvenle kullanabilirsiniz.

Misal

Örneğin, bunu değiştirmek istiyorsanız:

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

Bununla:

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

Aşağıdaki ikameleri yapardınız:

  1. public IFoo SomeField { get { return this.SomeField; } }XOXOXOXO(normal ifade kapalı ).
  2. XOXOXOXOXOXOXOXO\nHUHUHUHU(normal ifade açık ).
  3. XOXOXOXOpublic IFoo Foo { get { return this.MyFoo; } }(normal ifade kapalı ).
  4. HUHUHUHUpublic IFoo Bar { get { return this.MyBar; } }(normal ifade kapalı ).

@Alex Bu soruna, normal ifadelere dönüştürürken aramadan manuel olarak kaçmak ve metni değiştirmek zorunda kalmadan pratik bir çözümünüz varsa ve sonraki 10 dakikayı yaratılan canavarın bu şekilde düzeltilmesini sağlayın, duymaktan çok memnun olurum Cevabım sadece çirkin bir hack olduğu için. Gördüğünüz gibi, eklenti olmadan vanilya Visual Studio'da çalışan diğer tüm cevaplar düzenli ifadelerin kullanılmasını ve böylece basit metinlerden kaçmayı gerektirir.
Suzanne Dupéron

2
Bunu kötü bir şekilde kastetmedim. Benim özür dilerim bir surat koymak unuttum: D Bir çözüm gelince, hayır VS içeren bir yok. Ama regex (notepad ++ etc) destekleyen herhangi bir iyi dış editörün oldukça iyi çalıştığını buldum.
Alex

2
UltraEdit arama değiştirmenin kralıdır - burada satırları işaretleyerek ve aramayı başlatarak yeni satırları, çizgi çizgilerini veya her şeyi ararsınız. - Değiştirmeye gelince, \ n için ^ n, \ r için ^ r ve \ t için ^ t girin - yalnızca VS2010 aynısını yaparsa :-)
Miros

Arama dizenizin değişmez karakterlerle eşleşip eşleşmeyeceğini veya Regex kontrol karakterleri olarak yorumlanıp yorumlanmayacağını görmek için her zaman regex101.com adresini ziyaret edebilirsiniz .
ErikE

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.