0

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

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

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

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

谢谢。

4

3 回答 3

0

它可以通过多种方式完成,使用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);
于 2012-12-24T07:59:58.180 回答
0

第一种解决方案:我认为这是最简单的 - 剪切 [ 和 ] (第一个和最后一个字符) - 按“,” -> trim() -> 得到 3 个部分 - 删除多余的字符(如“{ 和 }”)如果你'确保您预期的字符串不包含“ { } -> 您可以在拆分前删除它们。

第二种解决方案:使用正则表达式

于 2012-12-24T08:22:41.213 回答
0

示例:提取 --> 你好吗?

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

现在变量 answer 包含三个词!

于 2012-12-24T17:08:00.690 回答