脚本开发,脚本学习,辅助软件,各种工具软件

访问密码统一为:3158

查看: 1605|回复: 0

基于PCRE2的正则表达式模块 支持Unicode

[复制链接]

71

主题

71

帖子

374

积分

孩提

Rank: 2

积分
374
发表于 2020-5-12 16:52:40 | 显示全部楼层 |阅读模式

“基于PCRE2的完全封装+功能扩展正则表达式模块!!!”
关于PCRE2:

    pcre2是一个超强大的正则表达式库,它与Perl兼容,有众多的程序嵌入了它 比如 PHP、Nginx等

Unicode支持:

    pcre2有三个库,libpcre2-8、libpcre2-16、libpcre2-32,分别支持 1字节代码单元(UTF-8)、2字节代码单元(UTF-16)、4字节代码单元(UTF-32)。

   这三个库我都已经编译并且放入压缩包,模块也实现完全封装全部支持,在普通使用中我们只需要用到 libpcre2-8这个库,如果需要Unicode支持则需要用到libpcre2-16这个库而libpcre2-32为32位代码单元支持,模块也支持,根据需求使用选择库。


模块公开的函数和类:

~I@XI0KUBEJ{[(WWG(19ZG6.png

使用说明:

P_正则全局加载链接库:加载全局链接库(载入DLL)

P_正则编译表达式:编译一个表达式,如果成功返回表达式句柄
P_正则内容替换:进行匹配和替换

P_正则内容高级替换:进行匹配和替换,不同于内容替换的是这个功能允许使用 \0 \1 \2这种类型的格式字符串传入,用以匹配 完整表达式捕获、第一个子表达式捕获、第二个子表达式捕获,同理支持最大\99

假设表达式为:(\d+)*(\d+),文本内容为:“100*200”,此处的格式为:“\1 => \2”,则最终替换返回的结果为:“100 => 200”

P_正则内容匹配:此功能用于判断某个文本是否与表达式匹配,匹配成功返回真,否则返回假

P_正则内容搜索:此函数通过已编译的表达式进行搜索内容,如果成功将返回一个搜索结果指针,如果启用全部搜索则返回一个搜索结果数组指针,如果无匹配返回0

。。。。。不一一叙述了,模块内有注释,不懂可以加下面的群

P_正则表达式类 封装于面向过程为类

P_正则表达式_便捷 与 P_正则表达式类 相同,但更加便捷操作

所有函数名称带W的表示支持 8/16/32 位字符单元模式(使用16位模式即可支持通常的Unicode),普通模式不支持宽文本的函数有备注

关于JIT:

    pcre2库支持JIT编译表达式,启用JIT编译在编译时稍微多耗费一些时间,但在匹配时速度快得多,这通常运用于单个模式进行多次匹配时需要

关于命名子表达式:

    表达式允许加入‘命名标签’,使用命名标签的格式:(?<名称>(子表达式))

例如表达式:(?<name>([1-9][0-9]{4,}))  匹配文本:jhbxwe8769933jdhxcn 那么将会匹配到 8769933 ,由于前面命名子表达式为name,则可以使用 P_正则取子匹配文本_从名称(搜索结果,name)来获取到 8769933

下载链接:https://t00y.com/file/20110282-442936963






上一篇:易语言配合PHP大文件上传(支持秒传)
下一篇:网络验证UI
3Q4T网,编程学习交流基地。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表