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

本文关键字:转义 string Format | 更新日期: 2023-09-27 17:51:07

我已经从其他答案中看到,要在c# string.Format()中转义{}字符,您可以使用{{}}

但我需要做的是格式化字符串,看起来像这样:

{{tag}}

但是,当我尝试转义双花括号时,像这样:

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

或:

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

输出总是这样:

{tag}

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

StringBuilder output = new StringBuilder();
output.Append("{{");
output.Append("tag");
output.Append("}}");

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

我错过了什么明显的吗?

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

要做到这一点,你需要在表达式的两边各加5个大括号

Console.WriteLine("{{{{{0}}}}}", "tag");

分解为

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

您可以这样使用代码。

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