文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>GNU C正则表达式使用实例

GNU C正则表达式使用实例

时间:2010-03-10  来源:huabo_linux

代码如下:
#include  <regex.h>
#include  <stdio.h>
#include  <string.h>
#include  <stdlib.h>

#define     OK       0
#define     FALSE   -1

int regular(const char* pattern, const char* str, char* res)
{
        int        z;
        regex_t    reg;
        regmatch_t pm;
        char       ebuf[128];

        z = regcomp(&reg, pattern, 0);
        if (0 != z)
        {
                return FALSE;
        }
        z = regexec(&reg, str, 1, &pm, 0);
        if (0 != z)
        {
                regerror(z, &reg, ebuf, sizeof(ebuf));
                fprintf(stderr, "%s: pattern '%s' \n", ebuf, pattern);
                return FALSE;
        }

        unsigned start = pm.rm_so;
        unsigned end   = pm.rm_eo;
        strncpy(res, str+start, end-start);

        regfree(&reg);

        return OK;
}

int main(int argc, char **argv)
{
        char result[64] = {0};

        if ( OK == regular("\\[.*\\]", "This is a test program, [google] is my love!!", result) )
        {
                printf("OK\n");
                printf("%s\n", result);
        }
        else
        {
                printf("FALSE\n");
        }

        return 0;
}

程序输出如下:
[root@localhost program]# ./a.out
OK
[google]
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载