0

これが私の関数です。ファイル内の文字列を置き換えようとしていますが、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));            
    ....
}

文字列を次のように変更すると機能します。

string pathToAmmend = @"$SERVERROOT\\pathpath";
string newPath = @"$SERVERROOT\\" + path;

しかし、2 つのスラッシュがあり、1 つのスラッシュだけが必要です。

4

2 に答える 2

7

実際には正規表現はまったく必要ないようです。あなたはおそらくただ欲しいように思えますstring.Replace

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

本当にパターンを一致させようとしている場合にのみ、正規表現を使用してください。

于 2013-07-31T15:18:58.493 に答える