如何在Regex中捕获重复组(对于C#)

时间:2016-07-22 11:19:11

标签: regex grouping repeat

我要检测并从字符串中提取一组重复的字符,并列出每个捕获组的一部分。

以下是要解析的字符串示例:“za ee 开始 Good1 结束 ds q 开始 Good2 结束 sds df“

我的正则表达方式是:“.*?(?::Start(.+)End.*?)+

期望抓取预期的群组:Good1Good2etc

我的正则表达式捕获错误:似乎(?::Start(.+)被视为要捕获的组......

我可以错过什么吗? 谢谢!

2 个答案:

答案 0 :(得分:0)

为什么不使用这种模式:\*{2}Start\*{2}(.*?)\*{2}End\*{2}

对于此输入字符串:za e e**Start**Good1**End**ds dq**Start**Good2**End**sds df,它会捕获Good1Good2

您可以在此处播放:https://regex101.com/r/dG0dX6/2

答案 1 :(得分:0)

这个正则表达式完成了这项工作:

/(?<=Start)(.+?)(?=End)/g