替换(在模式结束时解析“\”非法)

好吧,我有一个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:\”,并且程序会抛出这样的exception:

 The error in parsing "T:\" - illegal \ at end of pattern. 

谢谢!

你应该在模式中逃脱\ 。 使用"T:\\\\"或逐字字符串文字 ( 逐字字符串的优点是不处理转义序列,这使得编写起来很容易):

 var wordSearch = @"T:\\"; var wordReplace = @"T:\Gestion\"; content = Regex.Replace(content, wordSearch, wordReplace); 

再次逃离你的’\’。

 wordSearch = "T:\\\\" 

一个更优雅的解决方案是使用字符串前面的@modifier

 wordSearch = @"T:\\" 

\是转义字符,如果你想要\\ ,你应该键入\\\\或将@放在你的字符串前面,这将考虑整个字符串是纯文本

 wordSearch = @"T:\\" wordReplace = @"T:\\Gestion\\" // or wordSearch = "T:\\\\" wordReplace = "T:\\\\Gestion\\\\"