解析已知格式字符串的最有效方法

本文关键字:有效 方法 字符串 格式 | 更新日期: 2023-09-27 17:49:18

我有一个字符串,格式如下,例如:

[ "{0}", "{1}", "{2}" ]

所以我知道在那个字符串格式中总是有3个参数(可变长度)。

解析字符串最有效的方法是什么?(也许是最短的代码,所以我必须运行一些测试)

谢谢。

解析已知格式字符串的最有效方法

第一个解决方案:我认为这是最简单的-删去[和](第一个和最后一个字符)-分割","-> trim() ->得到3个部分-删除多余的字符(如"{和}")如果你确定你期望的字符串不包含"{}->",你可以在分割前删除它们。

第二个解决方案:使用Regex

可以通过多种方式实现,使用Regex类或字符串方法。

下面是如何使用Regex.Match:

        string s = @"[ ""some test"", ""another test string"", ""hi there!"" ]";
        string[] vars = Regex.Matches(s, @"""([^""]*)""")
            .Cast<Match>()
            .Select(m => m.Groups[1].Value)
            .ToArray();
另一种方法,使用Regex.Split:
        vars = Regex.Split(s.Remove(s.Length - 3, 3).Remove(0, 3), @""",'s""");

下面是使用字符串方法的一种方法:

        vars = s.Substring(s.IndexOf("'"") + 1, s.LastIndexOf("'"") - 3)
                    .Split(new string[] {@""", """}, StringSplitOptions.None);

示例:Extract -> How Are You?

string stuff = @"""{How}"", ""{Are}"", ""{You?}""";
string[] answer = (stuff.Replace(@"""{", String.Empty).Replace(@"}""", String.Empty)).Split(',');

现在变量answer包含了三个单词!