[英]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.