C++ Regexp:找到的每个项目的组(PCRE)

C++ Regexp:找到的每个项目的组(PCRE),c++,regex,pcre,C++,Regex,Pcre,我用C++(Borland)使用PCRE,想得到一组的所有匹配。< /P> ^(\w+\s)(\w+\s)*(\w+)$ 输入1:第一个第二个第三个 结果分为3组(第一组、第二组和第三组) 输入2:第一个第二个第三个 结果也分为3组(第一组、第二组和第三组),但我需要4组 第二个单词是可选的,出现0-n次 //编辑:我认为你最好的选择是: ^(\w+\s)((?:\w+\s)*)(\w+)$ 然后手动匹配内部的x字,通过字符串比较查找\s。PCRE似乎有一个功能,因此如果您知道 分隔符是一组

我用C++(Borland)使用PCRE,想得到一组的所有匹配。< /P>
^(\w+\s)(\w+\s)*(\w+)$
输入1:第一个第二个第三个 结果分为3组(第一组、第二组和第三组)

输入2:第一个第二个第三个 结果也分为3组(第一组、第二组和第三组),但我需要4组

第二个单词是可选的,出现0-n次


//编辑:我认为你最好的选择是:

^(\w+\s)((?:\w+\s)*)(\w+)$

然后手动匹配内部的x字,通过字符串比较查找
\s

PCRE似乎有一个功能,因此如果您知道 分隔符是一组空白,您应该拆分 文本和,取决于拆分字段的计数, 作出相应的反应

问候


rbo

我认为这是不可能的。请参阅无法直接执行的操作,但将第二个捕获从
(\w+\s)*
更改为
((?:\w+\s)*)
将捕获所有内容,代价是需要在第二个捕获组上执行额外的拆分步骤来提取所有元素。无pb。如果这个问题为你解决了,别忘了投票选出相关的答案和评论来奖励作者。并将您的问题标记为已解决,以结束主题。非常感谢。看起来柯达在这个话题上很有意思