我有一個字符串。爲簡單起見它可能看起來像這樣:多個字符串替換(在同一個字符串中)
\r\n\r\n\r\n
它也可以有更多的事件「\ r \ n」 - 我只在這裏張貼的最簡單的問題。
我需要插入的「\ r \ n \ r \ N」每次出現時之間的空間對於上面的例子,我期望與看起來字符串落得像:
\r\n \r\n \r\n
我CAN做到這一點使用下面的代碼(我不喜歡,因爲它爲了產生預期的結果,創造了很多的字符串):
string newString = "\r\n\r\n\r\n";
while (newString.Contains("\r\n\r\n"))
newString = newString.Replace("\r\n\r\n", "\r\n \r\n");
我有問題,嘗試使用或與string.replace找出一個正則表達式可以爲我做到這一點。
如果我嘗試使用與string.replace(甚至StringBuilder.Replace)是這樣的...
var result = "\r\n\r\n\r\n".Replace("\r\n\r\n", "\r\n \r\n");
我結束了
"\r\n \r\n\r\n" //There is no space between the last two carriage return/line feed
我認爲,正則表達式替換可能做的伎倆,但我不知道如何讓正則表達式引擎做一個懶惰的匹配,以便在第一次替換後替換所有出現的\ r \ n。
我一直在搜索SO和谷歌試圖找到類似的問題,但還沒有出現任何使用。我提前道歉,如果這是重複的,但如果是,我找不到它!
因此,總之,我可以使用while循環來做到這一點,但我想知道是否有更優雅的解決方案?
編輯
對不起 - 有更多的這一點: 我的代碼還可以查看一個字符串,它看起來像這樣:
5\r\n\r\nTest\r\n
在這種情況下,我希望看到看起來像這樣的字符串:
5\r\n \r\nTest\r\n
所以 - 我不想只是替換 '\ r \ n' 與 '\ r \ n',因爲這WOU ld給我一個字符串,看起來像lke:
"5\r\n \r\n Test\t\n "
可以試試newString = newString.Replace(「\ r \ n」,「\ r \ n」).Trim(); ? –
對不起 - 添加更多的細節,因爲我意識到我已經省略了我的問題的重要部分。 – Jay