1

文字列を取り、それらを範囲として式に組み込む正規表現を作成しようとしています。Regex.Escape (.net 3.5) を使用してこれらの文字列をサニタイズし、制御文字が残らないようにします。しかし、Escape メソッドが期待どおりに機能しておらず、終了}]文字をエスケープしないようです。これらをエスケープするべきではありませんか?これが私がやっていることの例です:

string test = @"sdfz346gv][)(}{><";
string pattern = "[" + Regex.Escape(test) + "]+";
string input = "ffff{444}g";

if (Regex.IsMatch(input, pattern))
{
    Console.WriteLine("Matched");
}
else
{
    Console.WriteLine("Not Matched");
}

pattern文字列は値を持っているようで[sdfz346gv]\[\)\(}\{><]+一致しませんffff{444}gが、私に関する限り、これ[sdfz346gv\]\[\)\(\}\{><]+は次のように見えるはずですffff{444}g}and の]文字を\}andに置き換えることもでき\]ますが、このエスケープ方法でエスケープされない文字は他にありますか? 私はそれを頼ることができますか?

4

1 に答える 1