PCRE测试
来源:互联网 发布:微信红包牛牛源码v8 编辑:程序博客网 时间:2024/06/06 00:37
简单写一下正则表达式的一个常用的工具,PCRE,用法还算简单,直接上代码了:
#include <stdio.h>#include <stdlib.h>#include <string.h>#include "pcre.h"#include <unistd.h>#include <iostream>#define N 10240#define M 30int main(int argc, char *argv[]){ const char *error; pcre *re; int erroffset; int ovector[M]; int rc = 0, i = 0; char buffer[N]; memset(buffer, 0, N); char src[N] = "<title>Hello World</tiiitttitle>"; char pattern[] = "<title>(.*)</[t|i]+le>"; printf("The string is %s\t%d\n", src, strlen(src)); printf("The pattern is %s\n", pattern); re = pcre_compile(pattern, 0, &error, &erroffset, NULL); if(NULL == re) { printf("PCRE compilation failed at offset %d: %s\n", erroffset, error); exit(-1); } rc = pcre_exec(re, NULL, src, strlen(src), 0, 0, ovector, M); if(rc < 0) { printf("NO match...\n"); exit(-1); } char *p = &src[0]; char line[1024]; int ind1 = 0, ind2 = 0; for(i = 0; i < rc; ++ i) { p = &src[0]; ind1 = ovector[2 * i]; ind2 = ovector[2*i + 1]; p = p + ind1; strncpy(line, p, ind2 - ind1); line[ind2 - ind1] = 0; printf("The start %d %c, the end is %d %c\t\t", ind1, src[ind1], ind2, src[ind2]); printf("The NO. %d is %s\n", i, line); } pcre_free(re); return 0;}
上面的代码中需要说的是有几个函数:
re = pcre_compile(pattern, 0, &error, &erroffset, NULL);
编译正则表达式;
rc = pcre_exec(re, NULL, src, strlen(src), 0, 0, ovector, M);
正则表达式的执行,匹配的结果存于ovector数组中;
pcre_free(re); 释放正则表达式的空间;
详细的一些参数需要查一下函数怎么用
0 0
- PCRE测试
- pcre
- pcre
- PCRE
- pcre
- Use PCRE
- Pcre++使用说明
- PCRE积累
- PCRE - compile
- pcre简介
- pcre是什么
- PCRE++编译
- 基础知识--pcre
- PCRE使用
- PCRE学习
- PCRE - compile
- pcre匹配
- PCRE介绍
- 广告拍卖机制与点击率预估概述
- ORA-03113: end-of-file on communication channel
- 百度安卓面试
- openflow一般概念
- Java性能优化
- PCRE测试
- Hibernate一级缓存、二级缓存以及查询缓存的关系
- Mysql学习笔记八,Mysql优化篇,常用sql技巧和常见问题
- CGI跟我学
- Linux 下查看机器代码
- 1.0 listview的adapter中getview的三种写法
- 融资的简单概念-20151203
- Android Notification通知小结
- 安卓中常用的第三方框架