C# 如何将字符串拆分为多个分隔符并保留分隔符?
例如,我有一个字符串abc({“C# 如何将字符串拆分为多个分隔符并保留分隔符?,c#,string,split,C#,String,Split,例如,我有一个字符串abc({“ 现在,我想用分隔符(“分隔符)将其拆分,我知道我可以使用String.split进行拆分。 但是,有没有一种方法可以通过这个符号来拆分,但不会丢失它?就像我使用拆分一样,我会得到这个字符串[]={abc',“{”},我想要{abc',“(,“{”} 还有一种使用多个分隔符的方法吗?与包含捕获组的模式一起使用 如果在Regex.Split表达式中使用捕获括号,则所有捕获的文本都将包含在结果字符串数组中 见: (\()正则表达式将(符号匹配并捕获到捕获组1中,因此捕
现在,我想用
分隔符(“
分隔符)将其拆分,我知道我可以使用String.split进行拆分。但是,有没有一种方法可以通过这个符号来拆分,但不会丢失它?就像我使用拆分一样,我会得到这个
字符串[]={abc',“{”}
,我想要{abc',“(,“{”}
还有一种使用多个分隔符的方法吗?与包含捕获组的模式一起使用 如果在
Regex.Split
表达式中使用捕获括号,则所有捕获的文本都将包含在结果字符串数组中
见:
(\()
正则表达式将(
符号匹配并捕获到捕获组1中,因此捕获的部分也将输出到结果字符串列表中。如果您有以下内容,该怎么办:abc(({
)并且您按(
)分割,结果中需要什么?我总是希望保留分隔符,{abc,(,(,,(,,,,,,{}
使用var results=System.Text.RegularExpressions.Regex.Split(s,@“(\()”);其中(m=>!string.IsNullOrEmpty(m));
对于多个分隔符,只需将它们添加到Regex中。要使用{
和(
)进行拆分,请使用@([({])”
Regex。要使用进行拆分,请使用>)|[{(]”
var s = "abc({";
var results = Regex.Split(s, @"(\()")
.Where(m=>!string.IsNullOrEmpty(m))
.ToList();
Console.WriteLine(string.Join(", ", results));
// => abc, (, {