ユーザーがフォーマット文字列を入力していくつかのパラメーターをフォーマットするシナリオがあります。.NET Framework(C#)のパラメーターの特定の数に基づいて、フォーマット文字列が無効であると判断するにはどうすればよいですか?
それを行うためのフレームワークの方法はありますか?または私は手動の方法を試す必要がありますか?
サンプル状況:
string format = "test {0}, {1}";
var res = string.Format(format, 23);
MSDNの記事の下にある、文字列の形式を検証するために正規表現を使用できます。
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;