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

C# 解析已知格式字符串的最有效方法,c#,.net,string,parsing,C#,.net,String,Parsing,我有一个字符串,其格式如下,例如: [ "{0}", "{1}", "{2}" ] 所以我知道在这个字符串格式中总是有3个参数(长度可变) 解析字符串最有效的方法是什么?(可能还有最短的代码,所以我必须运行一些测试) 谢谢。可以通过多种方式完成,使用Regex类或字符串方法 下面是如何使用Regex.Match: string s = @"[ ""some test"", ""another test string"", ""hi there!"" ]"; st

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

[ "{0}", "{1}", "{2}" ]
所以我知道在这个字符串格式中总是有3个参数(长度可变)

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


谢谢。

可以通过多种方式完成,使用
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();
以下是使用字符串方法执行此操作的一种方法:

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

第一个解决方案:我认为这是最简单的 -剪切[和](第一个和最后一个字符) -按“,”->trim()->得到3个零件 -删除冗余字符(如“{和}”) 如果您确定期望的字符串不包含“{}->”,则可以在拆分之前删除它们

第二种解决方案:使用正则表达式示例:Extract-->你好吗

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

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

解析…你的意思是循环和访问sring元素?到目前为止你做了什么?你希望其他人为你做这项工作吗?你期望什么输出?不是JSON。期望的输出是引号
{1}
{2}
{3}之间的两个字符串参数
。这是更快还是最简单的答案?(或两者兼而有之?)这是使用
Regex
类实现这一点的一种可能方法,与其他方法相比,由OP来测试效率和速度。
string stuff = @"""{How}"", ""{Are}"", ""{You?}""";
string[] answer = (stuff.Replace(@"""{", String.Empty).Replace(@"}""", String.Empty)).Split(',');