#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;
}
分享到:
相关推荐
### Linux下的C语言正则表达式使用详解 #### 引言 正则表达式作为一种强大的文本处理工具,广泛应用于各种编程语言中。对于C语言来说,尽管标准库并不直接支持正则表达式的操作,但可以通过引入第三方库来实现这一...
这里的"Linux C Regex正则表达式库"是一个专门为C语言开发的库,用于实现正则表达式的编译、匹配和操作功能。这个库经过修改后,也支持在Android平台下的C++应用中调用,拓展了其跨平台的适用性。 正则表达式...
在Linux系统中,正则表达式(Regular Expression)是一种强大的文本处理工具,它能通过预定义的模式匹配和处理文本数据。以下将详细介绍文件标题和描述中涉及的几个Linux正则表达式用法: 1. **查找IPv4地址**: ...
在Linux系统中,正则表达式(Regular Expression)是一种强大的文本处理工具,它能用于匹配、查找、替换等操作,广泛应用于数据提取、文件搜索、脚本编程等多个领域。本合集主要围绕如何在Linux环境下利用正则表达式...
《最小的C++正则表达式库:高效与便携性的完美融合》 在软件开发领域,正则表达式作为一种强大的文本处理工具,被广泛应用于数据验证、文本搜索和替换等场景。对于C++程序员来说,找到一个轻量级、跨平台且功能强大...
"C语言中巧用正则表达式(linux)" 正则表达式是一种强大的字符串处理工具,在 Linux 中广泛应用于 sed、awk、grep、vi 等实用工具中。作为 C 语言程序员,如果熟悉 Linux 下的 sed、awk、grep 或 vi,那么对正则...
linux下 用C语言 写的正则表达式
在Linux操作系统中,C语言编程时常常需要处理字符串匹配和模式查找的问题,这时POSIX(Portable Operating System Interface)正则表达式库就显得尤为重要。POSIX正则表达式是符合IEEE Std 1003.1标准的一套规则,它...
C语言正则表达式主要涉及三个关键步骤:编译、匹配和释放。 1. **编译正则表达式**: 使用`regcomp()`函数来编译正则表达式字符串。这个函数接受三个参数:一个`regex_t`结构体指针用于存储编译后的结果,一个包含...
在Linux Shell中,正则表达式是一种强大的文本处理工具,用于匹配、查找、替换等操作。它们允许用户通过使用特定的模式来搜索文本,这些模式可以描述一系列的字符序列。在Shell脚本中,正则表达式常用于`grep`, `sed...
在深入探讨Linux下的正则表达式(Regular Expression,简称RE)和`grep`命令之前,我们首先需要理解正则表达式的基本概念及其在系统管理与日常应用中的重要性。 ### 正则表达式:理解与应用 正则表达式是一种用于...
掌握正则表达式,可以极大地提升你在编程和数据处理上的效率,无论是UNIX/Linux系统还是Windows环境,甚至在各种编程语言中,如Python、Java、JavaScript等,正则表达式都是不可或缺的一部分。 正则表达式的核心...
例如,在许多支持正则表达式的工具中,"[abc]"表示匹配字符'a'、'b'或'c'中的任意一个字符。这种字符类的使用在Perl语言的正则表达式中也十分普遍。 正则表达式不仅限于字符类,还包括锚点、量词、分组、选择等构造...
正则表达式(Regular Expression,简称regex)是用于匹配字符串的一种模式,广泛应用于文本处理、数据验证、搜索和替换等场景。本资料“正则表达式必知必会”是针对初学者精心编写的教程,旨在帮助读者快速掌握这一...
- 命令行工具:如Unix/Linux的grep、sed、awk等,利用正则表达式处理文本文件。 四、正则表达式实例 1. 验证邮箱格式:`/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/` 2. 匹配URL:`/(http|https):\/\/[\w...