【发布时间】:2011-12-29 07:28:38
【问题描述】:
我们的低级日志库必须处理发送给它的各种日志消息。
其中一些消息包含花括号(作为文本的一部分),一些包含要使用 String.Format 格式化为字符串一部分的参数
例如,这个字符串可以是 Logger 类的输入:
“参数:{主机名}值:{0}” 发送正确的变量以供格式化程序使用。
为了正确执行此操作,我必须转义不属于格式的花括号(通过将它们加倍)。
我想过使用正则表达式来做,但这并不像看起来那么简单,因为我不知道如何在花括号内匹配这些字符串(String.Format 不用于格式化目的的字符串) .
另一个问题是 Logger 类应该尽可能提高性能,开始处理正则表达式作为其操作的一部分可能会影响性能。
是否有任何适当且已知的最佳实践?
【问题讨论】:
-
您已经在说您将它们加倍(例如:
{{Hostname}}。为什么这不起作用? -
我没有说我要加倍。我说我必须转义(加倍)与格式无关的那些,或者做其他事情来防止这个问题。
标签: c# string string-formatting curly-braces