我以此字符串 "abc({"
为例
现在,我想用 "("
分隔符拆分它,我知道我可以使用String.split。
但有没有办法,如果通过这个符号而不是损失它可以分裂?就像我使用拆分我会得到这个 string[] = { "abc" , "{" }
,我想 { "abc" , "(" , "{" }
。
还有一种方法可以使用多个分隔符吗?
答案 0 :(得分:2)
将Regex.Split
与包含捕获组的模式一起使用。
如果在
Regex.Split
表达式中使用捕获括号,则任何捕获的文本都包含在结果字符串数组中。
请参阅C# demo:
var s = "abc({";
var results = Regex.Split(s, @"(\()")
.Where(m=>!string.IsNullOrEmpty(m))
.ToList();
Console.WriteLine(string.Join(", ", results));
// => abc, (, {
(\()
正则表达式匹配并捕获(
符号到捕获组1中,因此捕获的部分也会输出到结果字符串列表中。