Linux下正则表达式
今天突然想起Linux下的正则的实现,所以网上找了下资料,发现确实存在相应的库,然而在测试代码时发现执行regexec函数之后,总是无法获取多个匹配结果。也就是说,对于某一行文本,虽然行字符串中存在多次匹配,然而在循环调用的时候发现每次只匹配了第一个。这是什么原因?
另外,有什么好的资料可以推荐下?
部分代码如下:
/* 对每一行应用正则表达式进行匹配 */
z = regexec(reg, lineBuffer, nmatch, pm, 0);
if (z == REG_NOMATCH)
continue;
else if (z != 0)
return 0;
/* 输出处理结果 */
for (x = 0; x < nmatch && pm[x].rm_so != - 1; ++x)
printf("The %d match: '%s'\n", x, substr(lineBuffer, pm[x].rm_so, pm[x].rm_eo));