2013-11-23 90 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"