正则表达式:每个找到的项目的组(PCRE)

时间:2011-03-09 10:05:28

标签: c++ regex pcre

我正在使用PCRE和C ++(Borland)并希望得到一组的所有比赛。

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

输入1:第一个第二个第三个 结果分为3组(第一,第二和第三)

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

第二个词是optinal,发生0 - n次。

//编辑:

2 个答案:

答案 0 :(得分:2)

PCRE似乎有split功能,所以如果你知道你的 分隔符是一组空格,你应该拆分 文本和,取决于拆分字段的数量, 做出相应的反应。

此致

RBO

答案 1 :(得分:1)

我认为你最好的选择是匹配:

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

然后手动匹配内部x个单词,用字符串比较查找\s