如何通过多个分隔符拆分字符串并保留分隔符?
我有这个字符串"abc({"
。
现在,我想用"("
分隔符拆分它,我知道我可以使用String.split。
但是有没有办法可以通过这个符号拆分而不是丢失它? 就像我使用分裂我会得到这个string[] = { "abc" , "{" }
我想要{ "abc" , "(" , "{" }
。
有没有办法用多个分隔符来做到这一点?
使用带有捕获组的模式的Regex.Split
。
如果在
Regex.Split
表达式中使用捕获括号,则任何捕获的文本都包含在结果字符串数组中。
看C#演示 :
var s = "abc({"; var results = Regex.Split(s, @"(\()") .Where(m=>!string.IsNullOrEmpty(m)) .ToList(); Console.WriteLine(string.Join(", ", results)); // => abc, (, {
(\()
正则表达式匹配并捕获(
符号到捕获组1,因此捕获的部分也在结果字符串列表中输出。