2011-02-11 22 views

cevap

13

İstediğin varsayarak yaşıyorum içine birden boşlukları çökecek

  • için kaldırır tek boşluk ve
  • iki veya daha fazla ardışık yeni satır bulun ve bunları tek bir yeni satırla değiştirin. bu doğru ise

, o zaman

resultString = Regex.Replace(subjectString, @"(|\r?\n)\1+", "$1"); 

Bu boşluk bozulmadan orijinal "türü" tutar ve ayrıca doğru Windows satır sonları korur kullanabilirsiniz. Ayrıca birine birden fazla sekme "yoğunlaştırmak" istiyorsanız, tek bir satırsonu içine satırbaşıyla ve boşluklar (her herhangi bir sayı) bir dizi yoğunlaştırmak için

resultString = Regex.Replace(subjectString, @"(|\t|\r?\n)\1+", "$1"); 

kullanmak kullanmak

resultString = Regex.Replace(subjectString, @"(?:(?:\r?\n)+ +){2,}", @"\n"); 
+0

+1 yeni satırları korumak için ve yalnızca aynı türdeki –

+0

kopyalarını çoğaltmak için iyi, ancak daha fazla uygunluk sorunu çözülemez. \ N \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n' – Shisoft

+0

boşlukları ile karışık döndürür Ve bu durumda sonuç ne istiyorsun? Ya \ n \ n \ n \ n \ n \ n 'veya \ n \ n \ n \ n gibi bir şeye sahipseniz veya \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n n' vb? –

-2

Boşlukları gidermek ve döndürmek için Trim() öğesini kullanabilirsiniz. HTML'de boşluklar önemli değildir, böylece bunları System.String sınıfındaki Trim() yöntemini kullanarak dışarı aktarabilirsiniz.

+1

I bir [HTML biçimlendirici] kullanmayı düşünebilirsiniz Döşeme sadece başlangıç ​​alanını ve son uzayını kaldırabilir – Shisoft

+0

Sanırım öyle değil. –

+0

Aslında, yalnızca önde gelen ve sondaki karakterler desteklenir: http://msdn.microsoft.com/en-us/library/system.string.trim.aspx. Yine de bir alternatifi önermek için +1, belki OP için bu fikri genişletmeye çalışın ve düzenli bir çözüm sunun mu? –

17

string new_string = Regex.Replace(orig_string, @"\s", "") iki veya daha fazla ardışık boşluk bulup bir ile değiştirin tümüyle beyaz

string new_string = Regex.Replace(orig_string, @"\s+", " ") sadece bir

+0

Teşekkürler, ne iade hakkında? – Shisoft

+0

Boşlukları kaldırdığınız yolu gerçekten çok sevdim ;-) –

+1

'\ s', boşluk, satırsonu, sekme ve form beslemesi (ve bazı uygulamalarda diğer bazı boşluklar) için kısa yoldur, dolayısıyla bu dönüşleri kaldıracak ve bunları dönüştürecek tek bir alan. –

0

kullandım Bunun için bir çok algoritma. Her döngü iyiydi ama bu açık ve mutlaktı.

//define what you want to remove as char 

char tb = (char)9; //Tab char ascii code 
spc = (char)32; //space char ascii code 
nwln = (char)10; //New line char ascii char 

yourstring.Replace(tb,""); 
yourstring.Replace(spc,""); 
yourstring.Replace(nwln,""); 

//by defining chars, result was better. 
İlgili konular