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

How to capture repeating groups in Regex (for C#)

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

下面是要解析的字符串示例:"za e eStartGood1Endds qStartGood2Endsds df"

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

预期捕获的组预期:Good1Good2etc

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

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

为什么不使用这个模式:\*{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

这个正则表达式可以完成工作:

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