使用正则表达式将字符串拆分为{curly}子字符串,但包括{}

时间:2016-09-20 13:37:54

标签: c# regex

我有这个字符串:

var s = "Cat{biscuits}Flaps";

输出应为:

  


{饼干}襟翼

我可以迭代这个:

Regex.Split(input, @"{(?<p>[^}]*)}");

然而,它会从饼干中移除{}

你能建议一个包含{}的正则表达式来提供上面的输出吗?

1 个答案:

答案 0 :(得分:6)

在整个模式周围使用捕获组:

var chunks = Regex.Split(input, @"({[^}]*})");
                                  ^       ^  

请参阅C# demo

var s = "Cat{biscuits}Flaps";
var chunks = Regex.Split(s, @"({[^}]*})");
Console.WriteLine(string.Join("\n", chunks));

请参阅Regex.Split reference

  

如果在Regex.Split表达式中使用捕获括号,则任何捕获的文本都包含在结果字符串数组中。