我有一个场景,用户可以输入格式字符串来格式化一些参数。
如何根据.NET Framework(C#)中的特定参数计数确定格式字符串无效?
框架中是否有任何方法可以做到这一点?或者我必须尝试手动方式?
示例情况:
string format = "test {0}, {1}";
var res = string.Format(format, 23);
答案 0 :(得分:3)
您可以使用Regex验证字符串的格式,在MSDN上的文章
下面http://msdn.microsoft.com/fr-fr/library/system.text.regularexpressions.regex.aspx
答案 1 :(得分:0)
解析格式字符串并不总是直截了当,因为计算了大括号的转义(参见documentation),但正则表达式和Regex.Matches().Count
应该足够准确:
string format = "test {0}, {1}";
var expectedParameters = Regex.Matches(format, "(?<!\\{)\\{[^}]*?\\}").Count;