PCRE2 10.45

PCRE2 10.45

经过半年多的开发,PERL 兼容正则表达式库 10.45 已经发布 PCRE2,用 C 语言编写并根据 BSD 许可分发。这是一个相对较大的版本,包括新功能、一些错误修复以及一些对向后兼容性影响较小的更改。

10.45 版本是新项目维护人员准备的第一个版本,他们感谢 PCRE 和 PCRE2 项目的创建者和维护者 Philip Hazel。

变更清单:

  • JIT 编译项目 关注 现在用作 Git 子模块。
  • 更新 Unicode 数据至版本 16.
  • Unicode Ll、Lt 和 Lu 属性的不区分大小写的映射已被更改以匹配 Perl。以前,/p{Ll}/i 模式仅匹配小写字符(即使指定了不区分大小写的匹配)。此更改还会影响 POSIX 类的不区分大小写的匹配,例如 [:lower:]。
  • 添加了新功能 scan_substring。这是一种新类型的断言,它将捕获块的内容与子模式进行匹配。
    例如,表达式 b(w++)(*scan_substring:(1).+rh) 查找包含不在最开头的罕见英文字母序列“rh”的单词。
  • 增加了对兼容字符类的支持 悉尼科技大学#18 (Unicode 正则表达式),使用新的 PCRE2_ALT_EXTENDED_CLASS 选项。为此,您需要使用 [ 作为字符类中的元字符以及运算符 &&、— 和 ~~,这使您可以轻松地执行字符类的减法和交运算。
    例如,为了匹配泰语或希腊语字母(但不匹配这些文字中的字母或其他字符),可以使用表达式 [p{L}&&[p{Thai}||p{Greek}]]。
  • 增加了对使用 (?[…]) 语法的 Perl 样式扩展字符类的支持。它还允许表示字符类的减法和交集,但使用的语法与 悉尼科技大学#18 (Unicode 正则表达式)。
    例如,为了匹配泰语或希腊语字母(但不匹配这些文字中的字母或其他字符),可以使用表达式 (?[p{L} & (p{Thai} + p{Greek})])。
  • 角色类别匹配机制有显著改进。编译的字符类现在更加紧凑,并使用二进制搜索为集合中的大型或复杂字符集提供更快的匹配。
  • API 中添加了一个新函数 pcre2_set_optimize() 来管理优化。
  • 对 pcre2_substitute() 函数进行了许多改进。
  • 其他改进和错误修复。

来源: linux.org.ru

为具有 DDoS 保护、VPS VDS 服务器的站点购买可靠的主机 🔥 购买具备 DDoS 防护的可靠网站托管服务,包括 VPS 和 VDS 服务器 | ProHoster