用双反斜杠替换单反斜杠。

| 看起来很简单,对吧?好吧,我不知道。 这是我正在尝试的代码:
input = Regex.Replace(input, \"\\\\\", \"\\\\\\\\\\\\\");
但是,我收到一个错误,   未处理ArgumentException-在模式结尾解析\“ \\\”-非法\\。 我该怎么做呢?     
已邀请:
第一个应该是
\"\\\\\\\\\"
,而不是
\"\\\\\"
。它是这样的: 您已写
\"\\\\\"
。 这将转换为字符串中的序列“ 4”。 然后,正则表达式引擎读取此内容,将其翻译为反斜杠,表示不转义任何内容,因此会引发错误。 使用正则表达式,使用\“ verbatim string \\\”更容易。在这种情况下,逐字字符串为“ 5”。使用逐字字符串时,您仅需考虑对正则表达式引擎进行转义,因为反斜杠会按字面意义处理。第二个字符串也将是“ 5”,因为正则表达式引擎不会解释它。     
如果要将一个反斜杠替换为两个反斜杠,可以使用to7ѭ作为字符串文字(也称为逐字字符串)的格式来消除正则表达式中的一个转义级别,这一点可能更清楚。这样就更容易看到
string output = Regex.Replace(input, @\"\\\\\", @\"\\\\\");
是从
\\
\\\\
的替换。     
 var result = Regex.Replace(@\"afd\\tas\\asfd\\\", @\"\\\\\", @\"\\\\\");
第一个参数是字符串\\\\,在正则表达式中为\\。 正则表达式不处理第二个参数,因此在替换时它将按原样放置。     
如果您打算稍后在正则表达式模式中使用输入,则最好使用Regex.Encode。
input = Regex.Escape(input);
    
我知道为您提供帮助已经为时已晚,也许其他人会从中受益。无论如何,这对我有用:
text = text.Replace(@\"\\\",@\"\\\\\");
而且我发现它更加简单。 干杯!     

要回复问题请先登录注册