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

标签 c# regex

我有这个字符串:

var s = "Cat{biscuits}Flaps";

输出应该是:

Cat
{biscuits}
Flaps

我可以迭代这个:

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

但是它从 cookies 中去除了 {}

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

最佳答案

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

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 :

If capturing parentheses are used in a Regex.Split expression, any captured text is included in the resulting string array.

关于c# - 使用正则表达式将字符串拆分为 {curly} 子字符串,但包括 { },我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39595675/

相关文章:

c# - 如何在 C# 中使用代码重用?

c# - EdsCreateImageRef() 方法给出 EDS_ERR_FILE_FORMAT_UNRECOGNIZED

c# - 我可以禁用 y 对话框的打印页 x 吗?

c# - 在 C# 中使用正则表达式保留一个特殊字符

javascript - 正则表达式仅包含数字和空格

javascript - 特定数量符号的正则表达式

c# - 在 C# 项目中运行 SAS 9.2 程序?

javascript - 使用正则表达式在 HTML 中查找 Mustache 变量

javascript - Regex/Jquery - 删除字符串/保留 Int

c# - if block 的重构