如何在记录订单的同时解析/拆分此行?

时间:2009-11-07 23:18:37

标签: c# regex split

有点卡在这里。我想我有一个简单的问题。

给出以下输入:

 content {c:comment comment}this is actual content{c:comment etc} content

我需要一种方法来分离内容和评论,但我现在需要它们的顺序。所以一个简单的正则表达式不起作用。

我想得到这个:

 content
 {c:comment comment}
 this is actual content
 {c:comment etc}
 content

有人知道吗?

3 个答案:

答案 0 :(得分:2)

正如Artelius所说:

Regex.Replace(
Regex.Replace(input, "({)", @"\r\n$1"),
                     "(})", @"$1\r\n");

答案 1 :(得分:0)

string s = "content {c:comment comment}this is actual content{c:comment etc} content";
var split = Regex.Split(s, @"\{c:(?<comment>[^\}]*)\}");

注意:当分割的正则表达式具有类似(?<comment> )的捕获时,它也会被返回。

答案 2 :(得分:0)

表达式(.*?)\s*{c:\s*(.*?)}\s*为我提供了一个字符串[],其中包含以下项目:'content', 'comment comment', 'this is actual content', 'comment etc', 'content'

也许这接近你正在寻找的东西。