0

配列 (または他のコレクション) 内の他のメソッドに渡したい正規表現パターン文字列がいくつかあります。

コメントに基づいて、私の最初の質問は十分に明確ではありませんでした。これは、私がやろうとしていることを正確に説明する単体テストです。

つまり、(正規表現パターンに基づく) 部分文字列を別の正規表現パターンに置き換えようとしています。

        var mainPattern = @"\{[\w]*\}";
        string replacePattern = @"\d{4}";

        var patternArray = new string[] { replacePattern };
        // patternArray[0] == "\\d{4}"

        string input = "fd/{ddf}/dfdf";
        string expected = @"fd/\d{4}/dfdf";

        var match = Regex.Match(input, mainPattern);
        // match.Value == "{ddf}"
        var output = Regex.Replace(input, match.Value, patternArray[0]);
        // output == "fd/\\d{4}/dfdf"

        Assert.AreEqual(expected, output);      

問題は、2 つのバックスラッシュが含まれる最終出力にあります (置換文字列がそのように見えるため)。

問題がより明確になることを願っています。

複雑にしすぎていると思います。すべての正規表現機能に精通しているわけではありませんか?

4

2 に答える 2