【发布时间】:2011-03-09 10:05:27
【问题描述】:
我正在将 PCRE 与 C++ (Borland) 一起使用,并希望获得一个组的所有匹配项。
^(\w+\s)(\w+\s)*(\w+)$
输入1:第一第二第三 结果分为3组(第一,第二和第三)
输入2:第一第二第二第三 结果也分为 3 组(第一、第二和第三),但我需要 4 组。
第二个词是可选的,出现 0 - n 次。
// 编辑:
【问题讨论】:
-
我认为这是不可能的。见stackoverflow.com/questions/5018487/…
-
不可能直接,但是将第二个捕获从
(\w+\s)*更改为((?:\w+\s)*)将捕获所有内容,代价是需要对第二个捕获组进行额外的拆分步骤以提取所有元素。