0

我有一个场景,用户可能会输入格式字符串来格式化某些参数。如何根据 .NET Framework (C#) 中的特定参数计数确定格式字符串无效?
框架中是否有任何方法可以做到这一点?或者我必须尝试手动方式?

样品情况:

string format = "test {0}, {1}";
var res = string.Format(format, 23);
4

2 回答 2

3

您可以在 MSDN 上的文章下方使用 Regex 来验证字符串的格式

http://msdn.microsoft.com/fr-fr/library/system.text.regularexpressions.regex.aspx

于 2012-08-01T07:55:46.400 回答
0

由于如何计算转义大括号(请参阅文档),解析格式字符串并不总是那么简单,而是一个正则表达式并且Regex.Matches().Count应该足够准确:

string format = "test {0}, {1}";
var expectedParameters = Regex.Matches(format, "(?<!\\{)\\{[^}]*?\\}").Count;
于 2012-08-01T08:04:19.177 回答