我有一个场景,用户可能会输入格式字符串来格式化某些参数。如何根据 .NET Framework (C#) 中的特定参数计数确定格式字符串无效?
框架中是否有任何方法可以做到这一点?或者我必须尝试手动方式?
样品情况:
string format = "test {0}, {1}";
var res = string.Format(format, 23);
您可以在 MSDN 上的文章下方使用 Regex 来验证字符串的格式
http://msdn.microsoft.com/fr-fr/library/system.text.regularexpressions.regex.aspx
由于如何计算转义大括号(请参阅文档),解析格式字符串并不总是那么简单,而是一个正则表达式并且Regex.Matches().Count
应该足够准确:
string format = "test {0}, {1}";
var expectedParameters = Regex.Matches(format, "(?<!\\{)\\{[^}]*?\\}").Count;