2011-04-10 15 views
53

Yeni satırlardan değil, bir dizideki en fazla 2 beyaz alanın yerine geçmek istiyorum, bu regex'e sahibim: \s{2,} Ayrıca yeni satırlarla eşleşiyor.2 satırdan daha fazla eşleşecek şekilde yeniden hizala Yeni satır değil

Yalnızca 2 veya daha fazla beyaz alanı nasıl eşleştirebilirim, yeni satırları değil?

Sana bir karakter sınıfı içinde eşleştirmek istediğiniz boşluk karakter koyun C#

+0

@nihcap - Aslında C# kendi normal ifadesine sahip değil, .NET ortak kütüphanesinin bir parçasıdır. Bu durumda, .Net ve C# her ikisi de yararlı etiketlerdir. – Kobi

cevap

101

kullanıyorum.

[ \t]{2,} 

eşleşir 2 ya da daha fazla boşluk karakteri: Örneğin.

Ayrıca yapabilirdi:

en az iki kez \r ve \n dışında herhangi beyaz boşluk char, maçları
[^\S\r\n]{2,} 

(\S sermaye S[^\s] için kısa olduğunu unutmayın).

+0

Son cümleninizde "kısa" ile ne demek istiyorsun? Normal ifadenin tamamı bu kısa yoldan nasıl görünecek? –

+1

@LonnieBest düzenli ifadelerde, \ w gibi kaçan diziler için, çoğunlukla büyük harf kaçış dizisinin küçük harf kaçış dizilerinin ters karakter kümesi olduğu bir kuraldır. Örneğin. \ d \ 'nin tersi, \' nin tersi \ S, \ w \ W'nin tersidir, vb. Ayrıca, [abc] gibi [] ile ayrılmış bir karakter sınıfında bir ters belirtmek mümkündür. [^ abc] kullanarak. Bu nedenle, \ S, [^ \ s] öğesine eşdeğerdir; bu, izin verildiği takdirde izin verilmeyen notasyon [^^ \ S] ile de aynı olacaktır. (^^ bir tersin tersini temsil etmenin geçerli bir yolu değildir.) –

+0

@DejayClayton Teşekkürler, bunu bilmiyordum. –

İlgili konular