开发者

How to get all string format parameters

Is there a way to get all format parameters of a string?

I have this string: "{0} test {0} test2 {1} test3 {2:####}" The result should be a list: {0开发者_JS百科} {0} {1} {2:####}

Is there any built in functionality in .net that supports this?


I didn't hear about such a build-in functionality but you could try this (I'm assuming your string contains standard format parameters which start with number digit):

List<string> result = new List<string>();
string input = "{0} test {0} test2 {1} test3 {2:####}";
MatchCollection matches = Regex.Matches(input, @"\{\d+[^\{\}]*\}");
foreach (Match match in matches)
{
    result.Add(match.Value);
}

it returns {0} {0} {1} {2:####} values in the list. For tehMick's string the result will be an empty set.


You could use a regular expression to find all the substrings matching that pattern.

A regular expression like \{.*?\} would probably do the trick.


no, there is no built in feature to do this. You'd have to parse them out with a regex or something


It doesn't look like it. Reflector suggests all the format string parsing happens inside StringBuilder.AppendFormat(IFormatProvider, string, object[]).


To get a good starting point on finding all the curly braces you should take a look into the FormatWith extension method.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜