逆に、エスケープされている正規表現要素をアンエスケープ(エスケープ解除)するにはRegex.Unescapeメソッドを使います。 結果はEscapeメソッドと逆になります。
Regex.Unscapeメソッドで文字列中の正規表現要素をアンエスケープする
using System;
using System.Text.RegularExpressions;
class Sample {
static void Main()
{
// 文字列中のエスケープされている記号をアンエスケープする
var str = @"\(\)\.\*\%\!$$\$";
Console.WriteLine(str);
Console.WriteLine(Regex.Unescape(str));
}
}
実行結果
\(\)\.\*\%\!$$\$ ().*%!$$$
このメソッドでは、エスケープされた置換の正規表現要素を表す$$
はエスケープされているとは解釈されず、$$
のままとなるようです。 \$
は$
にアンエスケープされるようです。