c# – 使用格式模板解析字符串?

如果我可以使用格式化字符串

string.Format("my {0} template {1} here", 1, 2)

我可以反转进程 – 我提供模板和一个填充字符串.net返回arg0,arg1等?

最佳答案
没有优雅的方式来反转格式化的字符串。但是如果你想要一个简单的功能,你可以尝试一下。

private List<string> reverseStringFormat(string template, string str)
{
    string pattern = "^" + Regex.Replace(template, @"\{[0-9]+\}", "(.*?)") + "$";

    Regex r = new Regex(pattern);
    Match m = r.Match(str);

    List<string> ret = new List<string>();

    for (int i = 1; i < m.Groups.Count; i++)
    {
        ret.Add(m.Groups[i].Value);
    }

    return ret;
}

转载注明原文:c# – 使用格式模板解析字符串? - 代码日志