看起来很简单,对吧?嗯,我不知道。
这是我正在尝试的代码:
input = Regex.Replace(input, "\\", "\\\\\\");
但是,我收到一个错误,
ArgumentException 未处理 - 解析“\” - 模式末尾的非法 \。
我该怎么做呢?
第一个应该是"\\\\"
,不是"\\"
。它是这样工作的:
"\\"
。\
字符串中的序列。使用正则表达式,使用“逐字字符串”要容易得多。在这种情况下,逐字字符串将是@"\\"
. 使用逐字字符串时,您只需考虑转义正则表达式引擎,因为反斜杠是按字面意思处理的。第二个字符串也将是@"\\"
,因为它不会被正则表达式引擎解释。
@"..."
如果您想用两个反斜杠替换一个反斜杠,则通过使用字符串文字(也称为逐字字符串)的格式来消除正则表达式中的一级转义可能会更清楚。然后更容易看到
string output = Regex.Replace(input, @"\\", @"\\");
是从\
到的替代品\\
。
我知道现在帮助你为时已晚,也许其他人会从中受益。无论如何,这对我有用:
text = text.Replace(@"\",@"\\");
我发现它更简单。
干杯!
var result = Regex.Replace(@"afd\tas\asfd\", @"\\", @"\\");
第一个参数是字符串 \\,它是正则表达式中的 \。
第二个参数没有被正则表达式处理,所以在替换的时候会保持原样。
如果您打算稍后在正则表达式模式中使用输入,那么使用 Regex.Encode 可能是个好主意。
input = Regex.Escape(input);