我有一个C#的迷你程序,所以我在我的程序中执行此操作
wordSearch = "T:\\"
wordReplace = "T:\\Gestion\\"
content = Regex.Replace(content, wordSearch, wordReplace);
但是没有用。错误是:
parsing "T:\" - illegal \ at end of pattern.
有什么想法吗?
[补充]
抱歉!也许我没有解释清楚。所以我再试一次。
我做了一个以字符串形式输入的表单,但是如果这个字符串是" T:\",则程序采用" T:\"。所以,我将这个字符串保存在变量" workShearch"。
中此变量用于:
之后content = Regex.Replace(content, Regex.Escape(wordSearch), Regex.Escape(wordReplace));
但是这一行包含一个错误,因为在这种情况下wordSearch是" T:\",并且该程序会抛出这样的异常:
The error in parsing "T:\" - illegal \ at end of pattern.
谢谢!
答案 0 :(得分:6)
你应该在模式中逃避\
。使用"T:\\\\"
或verbatim string literal(逐字字符串的优点是不处理转义序列,这使得编写更容易):
var wordSearch = @"T:\\";
var wordReplace = @"T:\Gestion\";
content = Regex.Replace(content, wordSearch, wordReplace);
答案 1 :(得分:1)
再次逃离你的'\'。
wordSearch = "T:\\\\"
更优雅的解决方案是使用字符串前面的@修饰符
wordSearch = @"T:\\"
答案 2 :(得分:1)
\
是转义字符,如果您想要\\
,则应输入\\\\
或者将@
放在字符串前面,这将认为整个字符串是纯文本
wordSearch = @"T:\\"
wordReplace = @"T:\\Gestion\\"
// or
wordSearch = "T:\\\\"
wordReplace = "T:\\\\Gestion\\\\"