我有一个字符串,我发送到外部打印功能.
我需要用反斜杠填充字符串,以便正确打印.
具体来说,我需要一个接受此示例输入的方法:
This is a string\nwith a line break\ta tab\rand a carriage return.
并输出:
This is a string\\nwith a line break\\ta tab\\rand a carriage return.
我是否需要Replace对它的每个可能的逃脱角色进行暴力攻击?
尝试:
s.Replace("\\","\\\\")
不起作用,因为它正在寻找一个反斜杠文字.
s.Replace("\n","\\n") 显然有效,但我正在寻找的是一种通用的方法.
编辑: 请不要建议暴力方法,我明白实施这样的方法没问题.我的问题是,是否有更普遍的方法.
cae*_*say 12
private static string EscapeLiterals(string input)
{
using (var writer = new StringWriter())
{
using (var provider = CodeDomProvider.CreateProvider("CSharp"))
{
provider.GenerateCodeFromExpression(new CodePrimitiveExpression(input), writer, null);
return writer.ToString();
}
}
}
Run Code Online (Sandbox Code Playgroud)
接受输入"\tHello\r\n\tLiterals!"并将其转换为"\\tHello\\r\\n\\tLiterals!"
适用于任何输入 - 它将为您提供任何输出的转义序列.
| 归档时间: |
|
| 查看次数: |
696 次 |
| 最近记录: |