想要\\ n和\\ t的正则表达式

时间:2014-12-15 15:03:42

标签: c# asp.net asp.net-mvc

我有源字符串

string source = "hemant \\\n test new line \\\t test tab";

想要使用正则表达式的字符串

string destination = "hemant test new line test tab"

(这里我只是将\ n和\ t替换为“”,即白色空格)

所以我试过

string destination = Regex.Replace(source, "[\\\n\\\\t]", " ");

这给了我目的地= hema test ew line es ab“

这里删除\\ n和\\ t。但是从新的

中删除hent n中的nt
string destination = Regex.Replace(source, "[\\n\\t]", " ");

这不做任何事情

4 个答案:

答案 0 :(得分:2)

试试这个:

string destination = Regex.Replace(source, @"(?:\\n)|(?:\\t)", " ");

甚至更简单:

string destination = Regex.Replace(source, @"\\[nt]", " ");

答案 1 :(得分:0)

"[\\\n\\\\t]"是一个,它将\ nt描述为单个字符,因此您将失去所有n& t个字符。

使用:"\\\\\\n|\\\\\\t"

答案 2 :(得分:-1)

您可以使用string.Replace

destination = source.Replace("\\\n", "").Replace("\\\t", "");

但请注意,在" hemat"之间会留下两个空格。和"测试",以及"线"和"测试"。如果你想压缩空格,你可以使用这个正则表达式。

var destination = Regex.Replace(source, @"\s*(\\\n|\\\t)\s*", " ");

请注意使用@,这样您就不必加倍反斜杠。

或者假设你的字符串实际上是

source = "hemant \\n test new line \\t test tab";

这是一个反斜杠字符,后跟字母" n"然后是一个反斜杠,后跟字母" t"。然后你可以做这样的事情。

var destination = Regex.Replace(source, @"\s*\\[nt]\s*", " ");

答案 3 :(得分:-1)

只需使用source.Replace("\\", " ").Replace("\n", " ").Replace("\t", " ");这里不需要正则表达式。