基于PCRE2的正则表达式[易语言源码]

(゜-゜)つロ 干杯~

基于PCRE2的正则表达式[易语言源码]

点评

“基于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位代码单元支持,模块也支持,根据需求使用选择库。

使用说明:
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编译在编译时稍微多耗费一些时间,但在匹配时速度快得多,这通常运用于单个模式进行多次匹配时需要

关于命名子表达式:

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

下载地址

   

如果资源下载失效请到 留言板 留言或者 QQ 联系我。

本站默认解压密码:www.hibbba.com

(゜-゜)つロ 干杯~

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: