gpt4 book ai didi

c# - 带花括号的 String.Format

转载 作者:太空狗 更新时间:2023-10-29 21:19:07 25 4
gpt4 key购买 nike

我们的低级日志库必须处理发送给它的各种日志消息。

其中一些消息包含大括号(作为文本的一部分),一些包含要使用 String.Format 格式化为字符串的一部分的参数

例如,这个字符串可以是 Logger 类的输入:

“参数:{主机名} 值:{0}”发送正确的变量以供格式化程序使用。

为了正确地做到这一点,我必须转义不属于格式的花括号(通过将它们加倍)。

我想过使用 Regex 来做这件事,但这并不像看起来那么简单,因为我不知道如何在大括号内匹配这些字符串(String.Format 不使用这些字符串来进行格式化) .

另一个问题是 Logger 类应该尽可能高效,开始处理正则表达式作为其操作的一部分可能会影响性能。

对此是否有适当且已知的最佳实践?

最佳答案

只用一个正则表达式:

string input = "Parameter: {Hostname} Value: {0}";
input = Regex.Replace(input, @"{([^[0-9]+)}", @"{{$1}}");
Console.WriteLine(input);

输出:

Parameter: {{Hostname}} Value: {0}

这当然只有在没有任何包含数字的参数时才有效,但仍应使用 {{ }} 进行转义

关于c# - 带花括号的 String.Format,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8133198/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com