我是否有任何聪明而巧妙的方法来猜测string
中的转义字符是否与SendKeys
使用的特定格式兼容?
起初我认为这样可行:
line = Regex.Replace(line, @"\{{0}", "{{}");
line = Regex.Replace(line, @"\}{0}", "{}}");
但这不会起作用,因为它会进行两次检查并完全弄乱语法。
我该如何处理?
答案 0 :(得分:1)
您可以使用某个占位符代替{
和}
,并使用这些占位符创建格式化结果。然后最后按{
和}
替换这些占位符。例如:
string PrepareForSendKeys(string input)
{
var specialChars = "+^%~(){}";
var c1 = "[BRACEOPEN]";
var c2 = "[BRACECLOSE]";
specialChars.ToList().ForEach(x =>
{
input = input.Replace(x.ToString(),
string.Format("{0}{1}{2}", c1, x.ToString(), c2));
});
input = input.Replace(c1, "{");
input = input.Replace(c2, "}");
return input;
}
你可以这样使用它:
var input = "some string containing + ^ % ~ ( ) { }";
MessageBox.Show(PrepareForSendKeys(input));
结果将是:
some string containing {+} {^} {%} {~} {(} {)} {{} {}}