有没有办法获取字符串的所有格式参数?
我有这个字符串:“{0} test {0} test2 {1} test3 {2:####}” 结果应该是一个列表: {0} {0} {1} {2:####}
.net中是否有支持此功能的内置功能?
答案 0 :(得分:3)
您可以使用正则表达式查找与该模式匹配的所有子字符串。
像\{.*?\}
之类的正则表达式可能会成功。
答案 1 :(得分:3)
我没有听说过这样的内置功能,但你可以试试这个(我假设你的字符串包含以数字开头的标准格式参数):
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);
}
它返回列表中的{0} {0} {1} {2:####}
值。对于tehMick的字符串,结果将为空集。
答案 2 :(得分:1)
不,没有内置功能来执行此操作。你必须用正则表达式或其他东西解析它们
答案 3 :(得分:1)
看起来不像。 Reflector建议所有格式字符串解析都发生在StringBuilder.AppendFormat(IFormatProvider,string,object [])中。
答案 4 :(得分:0)
要找到所有花括号的良好起点,您应该查看FormatWith extension method。