允许用户在文本框中输入转义字符

che*_*525 1 c# textbox escaping winforms

我有一个 Windows.Forms.TextBox,我希望允许用户输入转义序列,然后将其解释为它们所代表的字符。

例如,如果输入以下内容:

Hello\r\nWorld
Run Code Online (Sandbox Code Playgroud)

我希望将其存储为字符数组:

   H     e     l     l     o    \r    \n     W     o     r     l     d
0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x0D, 0x0A, 0x57, 0x6F, 0x72, 0x6C, 0x64
Run Code Online (Sandbox Code Playgroud)

到目前为止,我使用以下内容来处理 '\r' 和 '\n',但我也希望能够处理任何其他转义序列,例如\u001A(ctrl+z) 或\u001B(esc)

string str = txtBox.Text.Replace("\\r","\r").Replace("\\n","\n");
Run Code Online (Sandbox Code Playgroud)

...必须有一种更通用的方法来处理这个问题...

Dmi*_*try 5

您可以尝试使用System.Text.RegularExpressions.Regex.Unescape静态方法:

string str = Regex.Unescape(txtBox.Text);
Run Code Online (Sandbox Code Playgroud)

但不幸的是它主要适用于正则表达式控制字符。