我有一個字符串,其是在例如以下格式:最有效的方法來分析一個已知的格式串
[ "{0}", "{1}", "{2}" ]
所以我知道有總是在該字符串格式3個參數(可變長度)。
什麼是解析字符串的最有效方法? (也許最短的代碼,所以我必須運行一些測試)
謝謝。
我有一個字符串,其是在例如以下格式:最有效的方法來分析一個已知的格式串
[ "{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);
這是更快或最簡單的答案嗎? (或兩者兼而有之?) – Cheetah
這是使用'Regex'類的一種可能的方式,與其他方式相比,OP要測試效率和速度。 –
第一個解決方案:我認爲這是最簡單的 - 剪切[和](第一個和最後一個字符) - 按「,」拆分 - > trim() - >獲取3個零件 - 刪除多餘字符(如「{和}」) 如果您確定您的預期字符串不包含「{} - >您可以在拆分之前刪除它們。
第二種解決方案:使用正則表達式
示例:Extract - >你好嗎?
string stuff = @"""{How}"", ""{Are}"", ""{You?}""";
string[] answer = (stuff.Replace(@"""{", String.Empty).Replace(@"}""", String.Empty)).Split(',');
現在變量答案包含三個詞!
解析...你的意思是循環和訪問sring元素? – sajanyamaha
你到目前爲止嘗試過什麼?你想讓別人爲你做這份工作嗎? – alzaimar
你期望輸出什麼? – Amit