是否有任何智能和整潔的方式來推測string
中的轉義字符,以使其與SendKeys
使用的特定格式兼容?將字符串轉換爲SendKeys.Send()格式的字符串
起初我以爲這會工作:
line = Regex.Replace(line, @"\{{0}", "{{}");
line = Regex.Replace(line, @"\}{0}", "{}}");
但因爲它做兩次檢查這不會工作,工作,完全打亂了語法。
我該如何處理?
是否有任何智能和整潔的方式來推測string
中的轉義字符,以使其與SendKeys
使用的特定格式兼容?將字符串轉換爲SendKeys.Send()格式的字符串
起初我以爲這會工作:
line = Regex.Replace(line, @"\{{0}", "{{}");
line = Regex.Replace(line, @"\}{0}", "{}}");
但因爲它做兩次檢查這不會工作,工作,完全打亂了語法。
我該如何處理?
您可以使用一些佔位符而不是{
和}
,並使用這些佔位符創建格式化結果。然後最後用{
和}
替換那些佔位符。例如:
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 {+} {^} {%} {~} {(} {)} {{} {}}
感謝您的答案!類似的東西開始形成在我的腦海中,但我不知道如何處理這個問題,再次感謝! – Reynevan
不客氣:) –
您可以包括一些示例行,你有什麼,你想要什麼? –
假設我有一個字符串'class Abc {...(){}}'。現在,'SendKeys.Send(str)'的文檔聲明像'{'或'('''這樣的密鑰需要被封裝在'{}'中以便被讀作一個轉義按鍵。'我怎麼幹淨地'解析'一個字符串,以適應這些標準? – Reynevan