我有源字符串
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中的ntstring destination = Regex.Replace(source, "[\\n\\t]", " ");
这不做任何事情
答案 0 :(得分:2)
试试这个:
string destination = Regex.Replace(source, @"(?:\\n)|(?:\\t)", " ");
甚至更简单:
string destination = Regex.Replace(source, @"\\[nt]", " ");
答案 1 :(得分:0)
"[\\\n\\\\t]"
是一个类,它将\
n
和t
描述为单个字符,因此您将失去所有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", " ")
;这里不需要正则表达式。