首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

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

2012-09-12 
关于c的正则表达式库中 regexec() 的疑惑~~在网上看了很多关于C中实现正则表达式的例子,没想到千篇一律,其

关于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一次.

热点排行