簡體   English   中英

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

[英]Most efficient way to parse a known format string

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

[ "{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();

另一種方式,使用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);

第一個解決方案:我認為這是最簡單的-剪切[和](第一個和最后一個字符)-用“,”分割-> trim()->分成3個部分-刪除多余的字符(例如“ {和}”)確保您期望的字符串不包含“ {}->您可以在拆分之前將其刪除。

第二種解決方案:使用正則表達式

示例:提取->您好嗎?

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

現在變量答案包含三個單詞!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM