我正在嘗試按以下方式在 C# 中拆分字串:
輸入字串的格式為
{ Items.Test1 } ~ { Items.test2 } - { Items.Test3 }
我正在嘗試將其拆分為表單中的字串陣列
string[0]= "{ Items.Test1 }"
string[1]= " ~ "
string[2]= "{ Items.test2 }"
string[3]= " - "
string[4]= "{ Items.Test3 }"
我試圖以這樣的方式做到這一點
string[] result1 = Regex.Matches(par.Text.Trim(), @"\{(.*?)\}").Cast<Match>().Select(m => m.Value).ToArray();
它作業不正常。顯示以下結果。
string[0]="{ Items.Test1 }"
string[1]="{ Items.test2 }"
string[2]="{ Items.Test3 }"
請幫我解決這個問題
uj5u.com熱心網友回復:
你需要使用
Regex.Split(par.Text.Trim(), @"(\s [~-]\s )")
當使用包含捕獲組的正則運算式進行拆分時,捕獲的文本也作為結果陣列的一部分輸出。請參閱
請參閱C# 演示:
var pattern = @"(\s [~-]\s )";
var text = "{ Items.Test1 } ~ { Items.test2 } - { Items.Test3 }";
var result = Regex.Split(text, pattern);
// To also remove any empty items if necessary:
//var result = Regex.Split(text, pattern).Where(x => !String.IsNullOrWhiteSpace(x)).ToList();
foreach (var s in result)
Console.WriteLine(s);
輸出:
{ Items.Test1 }
~
{ Items.test2 }
-
{ Items.Test3 }
uj5u.com熱心網友回復:
您可以使用此正則運算式進行匹配:
[~-]|{[^}]*}
正則運算式演示
正則運算式詳情:
[~-]: 匹配一個~或-|: 或者{[^}]*}: 匹配一個{...}子串
代碼:
string pattern = @"[~-]|{[^}]*}";
string sentence = "{ Items.Test1 } ~ { Items.test2 } - { Items.Test3 }";
foreach (Match m in Regex.Matches(sentence, pattern))
Console.WriteLine("Match '{0}' at position {1}", m.Value, m.Index);
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/341573.html
