2016-06-21 57 views
-1

我有一個這樣的字符串:替換字符串CRLF(在前面的空白空間)與LF C#

string str="My name is John. \r\nI am in Boston. \r\nI like the school here. " 

問題是我怎麼可以只用\n(LF)替換這些\r\n(CRLF)。

看看在字符串的許多位置\ r \ n前面有空格。 另外,在末端或前面可能有空的空間。

我可以使用正則表達式還是簡單的替換函數?

+1

你有沒有嘗試過任何東西(正則表達式或簡單的替換)?你有沒有遇到任何問題? –

+2

這兩個選項似乎都很容易嘗試,所以我建議您嘗試兩種方法,並在遇到特定問題時回來。 – fvu

+0

是的,您可以同時使用正則表達式或簡單的替換功能。 – pijemcolu

回答

2

您可以使用String.Replace()

string str = "My name is John. \r\nI am in Boston. \r\nI like the school here. "; 
var output = str.Replace("\r\n", "\n"); 

輸出:

「我的名字是約翰\ NI是在波士頓\ NI喜歡這裏上學」


如果要刪除領先/空間空間,請使用Trim()函數:

output = output.Trim(); 

輸出:

「我的名字是約翰。 \ n我在波士頓。 \ NI喜歡這裏的學校「

+1

@GeoffJames你可以發佈你的答案而不是編輯 –

+0

@asdf_enel_hak謝謝,完成! :) –

+0

如何刪除空格@ Thomas Ayoub「我的名字是約翰。\ n我在波士頓。\ n我喜歡這裏的學校。」 –

0

您可以使用正則表達式,這和做這樣的事情:

string str = "My name is John. \r\nI am in Boston. \r\nI like the school here. "; 
    Regex rgx = new Regex("\\s*\\r\\n"); 
    string result = rgx.Replace(str , "\\n"); 
+0

我可以在rgx中進行替換嗎?正則表達式rgx = new Regex(「\\ s * \\ r \\ n」); string result = rgx.Replace(str,「\\ n」); –

+0

Thx。我將使用rgx之一。感謝大家在如此短的時間內回覆。 –

2

要更換新行:

同@Thomas阿尤布的回答,如果您只是想用\n替換\r\n

string str = "My name is John. \r\nI am in Boston. \r\nI like the school here. "; 
var output = str.Replace("\r\n", "\n"); 
如果你正在尋找的文本和 \r\n字符之間移除空白

,也:

刪除空格

我會建議由新線分割和修整,然後用新加盟再次線。

像這樣:

string str = "My name is John. \r\nI am in Boston. \r\nI like the school here. "; 
var strParts = str.Split("\r\n").Select(x => x.Trim()); // Split and trim 
var newStr = strParts.Join("\n"); // Join back up again. 

或者 「一個班輪」:

var tidyString = str.Split("\r\n") 
        .Select(x => x.Trim()) 
        .Join("\n"); 

輸出應該是:

"My name is John.\nI am in Boston.\nI like the school here."

希望這HEL PS!:)

+0

請參閱[system.environment.newline](https://msdn.microsoft.com/en-us/library/system.environment.newline(v = vs.110).aspx):*包含「\ r \ n「表示非Unix平臺*。你會取代什麼... –

+0

謝謝@ThomasAyoub - 我已經更新了我的答案:) –