读书人

关于c的正则表达式库中 regexec() 的

发布时间: 2012-09-12 09:21:30 作者: rapoo

关于c的正则表达式库中 regexec() 的疑惑~~
在网上看了很多关于C中实现正则表达式的例子,没想到千篇一律,其中的Regexec()函数只会匹配满足条件的第一个正则表达式,如果想匹配下一个结果我该怎么做呢
希望有经验的前辈指点指点

例如:
char *string="qqq charxx www charyy";
*regex="char[a-z]+";
nmatch为5的话,结果应该是什么?
她是不是应该把所有满足条件的都放进pmatch[5]这个数组里呀?

为什么结果是charxx
而不是 charxx charyy

请指点。



[解决办法]
为往往我们的规则表达式中还包含子规则表达式。数组0单元存放主规则表达式位置,后边的单元依次存放子规则表达式位置。
这句是重点
也就是说
matchptr[0]是这个匹配的字符串
matchptr[1]是第一个匹配的组 ..以后也类似的匹配组

如果你要匹配第二个的话,从第一个匹配的最后一个字符串再次调用regexec一次.

读书人网 >C语言

热点推荐