2017-04-12 56 views
-1

我想只測試/ ntest,然後輸出是測試測試,但所以只能將/ n替換爲一個空格,但某些情況/ r/n也會替換,但可以替換爲syatax只能在兩個單詞之間進行替換,所以我返回這個正則表達式但不起作用。在if-elsif-else條件下使用REGEX

string input = "/r/ntest/ntest/n/r" 
input = Regex.Replace(input, ".\n.", " "); 
+0

string input =「\ r \ ntest \ ntest \ n \ r」; input = Regex.Replace(input,「。\ n。」,「」); –

+0

1)你的代碼包含一個語法問題。 2)你的意思是什麼? –

回答

0

我認爲你必須提供的條件,您要非\ r字符到之前\ n存在,對正則表達式 - 但你必須發現添加非\ r字符進入替換字符串或者它會被切出:

Regex.Replace(input, @"(?<before>[^\r])\n", m => m.Groups["before"].Value + " "); 

(?<前> ...)定義了一個名爲組可以訪問後

[^ \ R] d一個字符是不是用\ r這裏存在

M =>米efines ...是Lambda表達式其中m在這種情況下是比賽例如

或者你可以在特定的情況下,也用一個簡單的替換來搞亂:

input = input.Replace("\r\n", "\r").Replace('\n', ' ').Replace("\r", "\r\n"); 
+0

你的正則表達式可以寫成'Regex.Replace(input,@「(?<!\ r)\ n」,「」)''。 –

+0

非常感謝你的工作 –