我有这个字符串:
var s = "Cat{biscuits}Flaps";
输出应为:
猫
{饼干}襟翼
我可以迭代这个:
Regex.Split(input, @"{(?<p>[^}]*)}");
然而,它会从饼干中移除{}
你能建议一个包含{}的正则表达式来提供上面的输出吗?
答案 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表达式中使用捕获括号,则任何捕获的文本都包含在结果字符串数组中。