如何在以下正则表达式中转义反斜杠c#

Dav*_*man 0 c# regex escaping

这是我的函数,我正在尝试替换文件中的字符串,但是c#告诉我我的正则表达式格式错误.有任何想法吗?

public void function(string fileName, string path) {
    string pathToAmmend = @"$SERVERROOT\pathpath";
    string newPath = @"$SERVERROOT\" + path;

    File.WriteAllText(fileName, Regex.Replace(File.ReadAllText(fileName), pathToAmmend, newPath));            
    ....
}
Run Code Online (Sandbox Code Playgroud)

如果我将字符串更改为:

string pathToAmmend = @"$SERVERROOT\\pathpath";
string newPath = @"$SERVERROOT\\" + path;
Run Code Online (Sandbox Code Playgroud)

但后来我有两个斜线,我只想要一个斜线.

Jon*_*eet 7

听起来你实际上根本不需要正则表达式.听起来你可能只是想要string.Replace:

// Split into three statements for clarity.
string input = File.ReadAllText(fileName);
string output = input.Replace(pathToAmend, newPath);
File.WriteAllText(output);
Run Code Online (Sandbox Code Playgroud)

只有在真正尝试匹配模式时才使用正则表达式.

  • 你不是在这里比较喜欢 - 你无法将`Regex.Replace`与`File.WriteAllText`进行比较.但是如果你需要为文件写入相同数量的字节,那么如果被替换的文本更小或更大,则会引发你想要做什么的问题.与是否使用正则表达式相比,这是一个完全不同的问题.我认为你对这两个问题感到困惑. (3认同)