C语言正则表达式regex

From: http://hi.baidu.com/david_jlu/blog/item/87ada1dbb9af6a60d0164eda.html

正则表达式在linux下应用非常广泛,经常使用sed、awk、grep、vi、emacs等都支持正则表达式,处理最好的莫过于perl,perl把正则表达式内置到语言内,使用起来非常方便。正则表达式的最大功用就是减轻程序员负担(程序员都很懒),简化处理字符串的复杂度,用C写一个split函数估计至少要15分钟,而这些东东都已经成为正则表达式默认支持的工具了。

ISO标准是不支持正则表达式的,这也导致很多程序员放弃C而转向perl、python的原因,不过POSIX是支持的,我在APUE读书笔记中提到过,就是regex.h:

#include <sys/types.h>
#include <regex.h>

int regcomp(regex_t *preg, const char *regex, int cflags);
int regexec(const regex_t *preg, const char *string, size_t nmatch, regmatch_t pmatch[], int eflags);
size_t regerror(int errcode, const regex_t *preg, char *errbuf, size_t errbuf_size);
void regfree(regex_t *preg);

正常的使用方式:编译正则表达式(regcomp)、匹配正则表达式(regexec)、释放正则表达式(regfree)

下面是一个例子:

点击看大图


这个是匹配Email的程序,按照上面的三步走就可以。


 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值