#include <stdio.h>
#include <sys/types.h>
#include <string.h>
#include <regex.h>
/**
* 要提取出字符串中的时间,消息类型,发送者 接收者 消息内容
*/
int main(int argc, char** argv) {
char *str = "20120302T12:12:12: [message] (test): [SAVE] chat 12234124@test to 234325@test: content";
char * pattern = "([0-9]{4}[0-9]{2}[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}): \\[message\\].+\\[\.+\] ([a-zA-Z]+) ([0-9a-z]+)@.+ to ([0-9a-z]+)@.+: (.+)";
regex_t reg;
regmatch_t pm[10];
int z,cflags = 0;;
z = regcomp(®, pattern, cflags);
//先编译正则表达式,正确返回0
if (z != 0) {
regerror(z, ®, ebuf, sizeof(ebuf));
fprintf(stderr, "%s: pattern '%s' \n", ebuf, pattern);
return 1;
}
z = regexec(®, lbuf, nmatch, pm, 0);
if (z == REG_NOMATCH)
continue;
else if (z != 0) {
regerror(z, ®, ebuf, sizeof(ebuf));
fprintf(stderr, "%s: regcom('%s')\n", ebuf, lbuf);
return 2;
}
/* 输出处理结果 */
for (x = 0; x < nmatch && pm[x].rm_so != -1; ++x) {
if (!x)
printf("%04d: %s\n", lno, lbuf);
printf(" $%d='%s'\n", x, substr(lbuf, pm[x].rm_so, pm[x].rm_eo));
}
/* 释放正则表达式 */
regfree(®);
return 0;
}
分享到:
相关推荐
C语言不包含STL中的大量的数据结构,为此,要在C语言中使用正则式,需要使用另外单独的其他的库,本资源是可以直接使用的正则式库,通过验证
"C语言中的正则表达式应用" 正则表达式是一种强大的字符串处理工具,在 Linux 下的 sed、awk、grep 或 vi 等实用工具中得到了广泛应用。作为 C 语言程序员,用户可以在自己的程序中运用正则表达式,以简化处理字符...
linux下 用C语言 写的正则表达式
正则表达式就是用于匹配每行输入的一种模式,模式是指一串字符序列。拥有强大的字符搜索功能。也非常方便的搜索过滤出我们想要的内容。
linux下posix标准的正则表达式库,支持regcomp, regexec等,可以放到vs2010或vs2012下进行编译。
如果用户熟悉Linux下的sed、awk、grep或vi,那么对正则表达式这一概念肯定不会陌生。...千万不要以为正则表达式只是Perl、Python、Bash等脚本语言的专利,作为C语言程序员,用户同样可以在自己的程序中运用正则表达式。
如安在C语言中巧用正则表达式(linux).docx
标准的C和C++都不支持正则表达式,但有一些函数库可以辅助C/C++程序员完成这一功能,其中最著名的当数Philip Hazel的Perl-Compatible Regular Expression库,许多Linux发行版本都带有这个函数库。 C语言处理正则...
Linux C Regex正则表达式 库 修改 (支持Android下C++调用)
需要大家牢记:正则表达式与通配符不一样,它们表示的含义并不相同 正则表达式只是字符串的一种描述,只有和支持正则表达式的工具相结合才能进行字符串处理。本文以grep为例来讲解正则表达式。 grep命令 功能:输入...
正则表达式是在文件中匹配符合条件的字符串的 ls find cp是不支持正则表达式的 但是grep awk sed支持正则表达式 [root@hadoop-bigdata01 test]# touch aa [root@hadoop-bigdata01 test]# touch aab aabb [root@...
一段用于linux下的 C语言使用正则表达式的例子 使用C regex 简要使用示例 编译语句如下: g++ regex_test.cpp -g -o regex_test
grep (缩写来自Globally search a Regular Expression and Print)是一种强大的文本搜索工具,它能使用特定模式匹配(包括正则表达式)搜索文本,并默认输出匹配行。Unix的grep家族包括grep、egrep和fgrep。Windows...
正则表达式快速入门,30分钟上手,快速掌握正则表达式基本用法
如果你是一位接触计算机语言的工作者,那么你会在主流操作系统(*nix[Linux, Unix等]、Windows、HP、BeOS等)、主流的开发语言(delphi、Scala、PHP、C#、Java、C++、Objective-c、Swift、VB、Javascript、Ruby以及...
p=an=ta_cl|uuid=466015120187637356708047806953|s=2001|c=tw|ch=3010000001$3010000001|er=GRJ90|av=3.9.263|ki=2$0|wl=3|se=0$0$0|ct=0$0|cl=0$1$0$0 HTTP/1.1" 0.001 200 33 "Dalvik/1.4.0 (Linux; U; Android ...
如何在C语言中巧用正则表达式(linux).docx