1. 0.pcre_exec
  2. 原型:
  3. #include <pcre.h>
  4. int pcre_exec(const pcre *code, const pcre_extra *extra, const char *subject, int length, int startoffset
    , int options, int *ovector, int ovecsize);
  5. 功能:匹配成功返回非负数,没有匹配返回负数
  6. 参数:
  7. code 输入参数,用pcre_compile编译好的正则表达结构的指针
  8. extra 输入参数,用来向pcre_exec传一些额外的数据信息的结构的指针
  9. subject 输入参数,要被用来匹配的字符串
  10. length 输入参数, 要被用来匹配的字符串的指针
  11. startoffset 输入参数,用来指定subject从什么位置开始被匹配的偏移量
  12. options 输入参数, 用来指定匹配过程中的一些选项
  13. ovector 输出参数,用来返回匹配位置偏移量的数组,本质上是多维数组
  14. ovecsize 输入参数, 用来返回匹配位置偏移量的数组的最大大小
  15.  
  16. ovector的最后1/3个空间,即[2n~3n-1],貌似为pcre正则匹配算法预留,不返回结果
  1. 1.pcre_compile
  2. 原型:
  3. #include <pcre.h>
  4. pcre *pcre_compile(const char *pattern, int options, const char **errptr, int *erroffset, const unsigned char *tableptr);
  5. 功能:讲一个正则表达式编译成一个内部表示,在匹配多个字符串时,可以加速匹配。其同pcre_compile2功能一样只是缺少一个参数errorcodeptr
  6. 参数:
  7. pattern 正则表达式
  8. option 0,或者其他参数选项
  9. errptr 出错信息
  10. erroffset 出错信息
  11. tableptr 指向一个字符数组的指针,可以设置为空NULL
  1. 2.pcre_compile2
  2. 原型:
  3. #include <pcre.h>
  4. pcre *pcre_compile2(const char *pattern, int options, int *errorcodeptr, const char **errptr, int *erroffset,
  5. const unsigned char *tableptr);
  6. 功能:将一个正则表达式编译成一个内部表示,在匹配多个字符串时,可以加速匹配。其同pcre_compile功能一样只是多一个参数errorcodeptr
  7. 参数:
  8. pattern 正则表达式
  9. options 0,或者其他参数选项
  10. errorcodeptr 存放出错码
  11. errptr 出错消息
  12. erroffset 出错位置
  13. tableptr 指向一个字符数组的指针,可以设置为空NULL
  1. 3.pcre_config
  2. 原型:
  3. #include <pcre.h>
  4. int pcre_config(int what, void *where);
  5. 功能:查询当前PCRE版本中使用的选项信息。
  6. 参数:
  7. what 选项名
  8. where 存储结果的位置
  1. 4.pcre_copy_named_substring
  2. 原型:
  3. #include <pcre.h>
  4. int pcre_copy_named_substring(const pcre *code, const char *subject, int *ovector, int stringcount,
  5. const char *stringname, char *buffer, int buffersize);
  6. 功能:根据名字获取捕获的字串
  7. 参数:
  8. code 成功匹配的模式
  9. subject 匹配的串
  10. ovector pcre_exec()使用的偏移向量
  11. stringcount pcre_exec()的返回值
  12. stringname 捕获字串的名字
  13. buffer 用来存储的缓冲区
  14. buffersize 缓冲区大小
  1. 5.pcre_copy_substring
  2. 原型:
  3. #include <pcre.h>
  4. int pcre_copy_substring(const char *subject, int *ovector, int stringcount, int stringnumber, char *buffer, int buffersize);
  5. 功能:根据编号获取捕获的字串
  6. 参数:
  7. code 成功匹配的模式
  8. subject 匹配的串
  9. ovector pcre_exec()使用的偏移向量
  10. stringcount pcre_exec()的返回值
  11. stringnumber 捕获字串编号
  12. buffer 用来存储的缓冲区
  13. buffersize 缓冲区大小
  1. 6.pcre_dfa_exec
  2. 原型:
  3. #include <pcre.h>
  4. int pcre_dfa_exec(const pcre *code, const pcre_extra *extra, const char *subject, int length, int startoffset, int options,
  5. int *ovector, int ovecsize, int *workspace, int wscount);
  6. 功能:使用编译好的模式进行匹配,采用的是一种非传统的方法DFA,只是对匹配串扫描一次(与Perl不兼容)
  7. 参数:
  8. code 编译好的模式
  9. extra 指向一个pcre_extra结构体,可以为NULL
  10. subject 需要匹配的字符串
  11. length 匹配的字符串长度(Byte)
  12. startoffset 匹配的开始位置
  13. options 选项位
  14. ovector 指向一个结果的整形数组
  15. ovecsize 数组大小
  16. workspace 一个工作区数组
  17. wscount 数组大小
  1. 7.pcre_copy_substring
  2. 原型:
  3. #include <pcre.h>
  4. int pcre_exec(const pcre *code, const pcre_extra *extra, const char *subject, int length, int startoffset, int options,
  5. int *ovector, int ovecsize);
  6. 功能:使用编译好的模式进行匹配,采用与Perl相似的算法,返回匹配串的偏移位置
  7. 参数:
  8. code 编译好的模式
  9. extra 指向一个pcre_extra结构体,可以为NULL
  10. subject 需要匹配的字符串
  11. length 匹配的字符串长度(Byte)
  12. startoffset 匹配的开始位置
  13. options 选项位
  14. ovector 指向一个结果的整形数组
  15. ovecsize 数组大小
  1. 8.pcre_free_substring
  2. 原型:
  3. #include <pcre.h>
  4. void pcre_free_substring(const char *stringptr);
  5. 功能:释放pcre_get_substring()和pcre_get_named_substring()申请的内存空间
  6. 参数:
  7. stringptr 指向字符串的指针

Sword pcre库函数学习一的更多相关文章

  1. Sword pcre库函数学习三

    14.pcre_get_substring_list 原型: #include <pcre.h> int pcre_get_substring_list(const char *subje ...

  2. Sword pcre库函数学习二

    9.pcre_free_substring_list 原型: #include <pcre.h> void pcre_free_substring_list(const char **st ...

  3. Sword pcre库使用

    #include <stdlib.h> #include <string.h> #include "regularhelper.h" #include &q ...

  4. Sword cjson库函数使用

    /* cjson库的使用 */ #include <stdio.h> #include <stdlib.h> #include <string.h> #includ ...

  5. 在C语言中利用PCRE实现正则表达式

    1. PCRE简介 2. 正则表达式定义 3. PCRE正则表达式的定义 4. PCRE的函数简介 5. 使用PCRE在C语言中实现正则表达式的解析 6. PCRE函数在C语言中的使用小例子 1. P ...

  6. PHP学习笔记 - 进阶篇(5)

    PHP学习笔记 - 进阶篇(5) 正则表达式 什么叫正则表达式 正则表达式是对字符串进行操作的一种逻辑公式,就是用一些特定的字符组合成一个规则字符串,称之为正则匹配模式. $p = '/apple/' ...

  7. PHP学习之-正则表达式

    PHP学习之-正则表达式 1.什么是正则表达式 正则表达式是对字符串处理额一种逻辑公式,就是用特定的字符串组合成一个规则的字符串,称之为正则匹配模式 $p = '/apple/'; $str = '' ...

  8. PCRE-正则库及用法

    摘自http://blog.chinaunix.net/uid-26575352-id-3517146.html    在C语言中利用PCRE实现正则表达式 http://www.pcre.org/ ...

  9. iBase4J部署总结

    iBase4J部署总结 序言 最近看到个分布式框架,只有一个字:好.所以部署起来看看.开始的时候说实话遇到了点困难.去码云上看了下,貌似想得到指导要加入一个群,而且需要收费的,反正闲来无事,索性自己搞 ...

随机推荐

  1. 如何在Google Play商店发布多个版本apk

    原文:http://android.eoe.cn/topic/android_sdk 多种apk的支持是一个特点在Google Play,它允许你发布不同的APKs为你的应用匹配不同尺寸的设备.每个A ...

  2. 【Unity】9.1 导入粒子系统组件

    分类:Unity.C#.VS2015 创建日期:2016-05-02 一.简介 Unity 5.x已经自带了粒子系统组件,新建工程后只需要直接导入它就可以使用了. 二.导入Unity自带的粒子系统组件 ...

  3. android 自己定义视频播放器之2/1

    非常久没更新博客,相信大家年后都比較忙. 今天给大家带来了一款视频播放器,首先确认的得有几点. 1.首先得有个播放视频的view. 2.加点额外功能进去左边上下滑动调节亮度,右边上下滑动调节声量: 3 ...

  4. Java方法内部需要重新请求的一种机制

    有这样一个需求,当调用某个方法抛出异常,比如通过 HttpClient 调用远程接口时由于网络原因报 TimeOut 异常:或者所请求的接口返回类似于“处理中”这样的信息,需要重复去查结果时,我们希望 ...

  5. haproxy rpm制做

    [root@c01 tmp]# fpm -s dir -t rpm -v 1.7.7 -n haproxy --before-install /tmp/haproxy_before.sh --afte ...

  6. 菜鸟教程之工具使用(一)——Git的基本使用

    Git是进来比较火的版本控制工具,大有取代svn的趋势.关于两种孰好孰坏我就不多费口舌了,网上关于二者的对比文章比比皆是.作为一个IT人员关注行业的发展动态是必须的,所以抽空研究了一下Git的使用.跟 ...

  7. Market Guide for AIOps Platforms

    AIOps platforms enhance IT operations through greater insights by combining big data, machine learni ...

  8. 双系统linux+win之血的教训

    绝对不要用win的软件来直接调整linux分区!!!!! 除非你不想要这个linux分区里的数据了...

  9. ZooKeeper学习之文件系统的布局和格式

    本文来谈谈快照文件,事务日志文件在文件系统中是如何存放的. 写事务日志是事务处理的关键步骤,所以高度建议在一个独立的磁盘上存储.快照不需要在独立的磁盘存储,因为它们是由一个后台线程以懒汉式的(lazi ...

  10. vue监听浏览器窗口的变化,随着窗口变化调整里面table的宽高

    1.在data中设置: tableHeight:"500", screenHeight:window.innerHeight, 2.在mounted中设置: mounted() { ...