如何解决用双反斜杠替换单反斜杠
| 看起来很简单,对吧?好吧,我不知道。 这是我正在尝试的代码: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(@\"\\\",@\"\\\\\");
而且我发现它更加简单。
干杯!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。