如何在string.Format()中转义双花括号

时间:2014-03-20 22:31:55

标签: c# string escaping

我已经从other answers看到,为了逃避C#{中的}string.Format()字符,您使用了{{}}

但我需要做的是格式化一个如下所示的字符串:

{{tag}}

然而,当我试图逃避这样的双花括号时:

string.Format("{{{0}}}", "tag");

或者这个:

string.Format("{{{{{0}}}}}", "tag");

输出始终如下:

{tag}

我发现有效的另一种方式是:

StringBuilder output = new StringBuilder();

output.Append("{{");
output.Append("tag");
output.Append("}}");

但是,为了格式化字符串而必须拥有所有这些似乎很愚蠢。

我错过了一些明显的东西吗?

2 个答案:

答案 0 :(得分:4)

为了做到这一点,你需要在表达式

的任一侧使用5个括号
Console.WriteLine("{{{{{0}}}}}", "tag");

分解是

  • 2表示第一个{
  • 2表示第二个{
  • 1代表{
  • 中的第一个{0}

答案 1 :(得分:0)

您可以这样使用代码。

string.Format("{0}{1}{2}", "{{","tag","}}");