2013-11-23 129 views
1

我有一個字符串,我想操縱。問題是替換包含正則表達式。正則表達式:「替換」模式

var result = Regex.Replace("Abc", "\r\nAbc\r\n", "\r\n"); 
// or something like that, it can be also \t and so on... 

但結果不是新行,而是字符串「\ r \ n」。

PS:順便說一下,如果我想以取代無中生有,因爲很簡單的例子:

Regex.Replace("abc", "abc", "") 

正則表達式似乎失敗。不能將字符串替換爲空字符串?

+0

\ r \ n是一個新行(返程+換行),其在某些操作系統中使用系統。 – Goran

+0

如果你想用空字符串替換字符串,只需使用String.Replace()':'string result =「abc」.Replace(「abc」,「」);' – bump

+0

請看我的回答@Crud – peter70

回答

0

你可以像下面那樣使用正則表達式來使用正則表達式。

string result = "abc".Replace("abc", string.empty); 
+0

是的,我知道,但輸入文字非常長,而且我有很多問題。所以我不能在這裏列出每個複雜的問題。他們只是非常簡單的落在這裏,只是作爲一個例子 – peter70

0

試試這個:

var result = Regex.Replace("Abc", "\r\nAbc\r\n", System.Environment.NewLine); 
+0

我認爲沒有一個操作系統特定的問題。我知道沒有其他選項可以指定替換字符串作爲正則表達式 – peter70

0

嘗試的正則表達式之前添加字符串字面@標識。

var result = Regex.Replace("Abc", @"\r\nAbc\r\n", "\r\n"); 

我的猜測是,他們正在作爲轉義字符讀入正則表達式引擎之前被讀入。

基本上,圖案中獲得通過是這樣的:

" 
Abc 
" 

這一翻譯的這樣的:

"\r\nAbc\r\n"