2012-08-22 83 views
2

我試圖清理的字符串看起來像C#正則表達式不會刪除所有不需要的字符?

"\r\nPasswordchanged?\r\r\n" string 

我用這個方法

public string[] cleanStrings(string[] clean) 
    { 
     int j = 0; 
     foreach (string data in clean) 
     { 
      string temp = System.Text.RegularExpressions.Regex.Replace(data, @"\r\n+", ""); 
      if (temp.Equals(" ")) 
      { 
       temp = ""; 
      } 
      clean[j] = temp; 
      j++; 
     } 
     return clean; 
    } 

結果是

"Passwordchanged?\r" string 

我想我的正則表達式將刪除所有\r\n

我錯過了什麼?

+1

嘗試使用'\ r + | \ n +' – SliverNinja

+4

如果'\ r'和'\ n'是回車符和換行符,那麼爲什麼不只是'修剪'它呢? – poncha

+0

你的正則表達式檢查一個'\ r'緊跟一個'\ N'並刪除它們成對。 –

回答

5

使用字符類來代替,特別是[\r\n]。這樣,字符類中的任何字符都將匹配。

string result = Regex.Replace(data, @"[\r\n]", ""); 

您當前的格局,\r\n+,將只匹配\r後跟一個或多個字符\n,所以它不能夠例如匹配其他獨立\r字符。

相關問題