我有一个字符串"abc({"
,现在我想通过"("
分隔符进行拆分,我知道可以使用String.split来实现。
但是,是否有一种方法可以按此符号拆分,但不会丢失它?如果我使用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个捕获组中,因此捕获的部分也会在输出的字符串列表中显示。
abc((({
,并且你按照(
进行分割,你希望得到什么结果? - CodingYoshi{ abc , ( , ( , ( , { }
。 - vertigovar results = System.Text.RegularExpressions.Regex.Split(s, @"(\()").Where(m=>!string.IsNullOrEmpty(m));
。 - Wiktor Stribiżew@"([({])"
正则表达式通过{
和(
进行分割。要使用@"(abc|[{(])"
正则表达式通过abc
,{
和(
进行拆分。 - Wiktor Stribiżew