千家信息网

正则表达式引擎的内部工作机制是什么

发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,这篇文章给大家分享的是有关正则表达式引擎的内部工作机制是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。了解正则表达式引擎的必要性:知道正则表达式引擎是如何工作的有助于你
千家信息网最后更新 2025年02月03日正则表达式引擎的内部工作机制是什么

这篇文章给大家分享的是有关正则表达式引擎的内部工作机制是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

了解正则表达式引擎的必要性:

知道正则表达式引擎是如何工作的有助于你很快理解为何某个正则表达式不像你期望的那样工作。

正则表达式引擎的种类:

有两种类型的引擎:文本导向(text-directed)的引擎和正则导向(regex-directed)的引擎。Jeffrey Friedl把他们称作DFA和NFA引擎。本文谈到的是正则导向的引擎。这是因为一些非常有用的特性,如"惰性"量词(lazy quantifiers)和反向引用(backreferences),只能在正则导向的引擎中实现。所以毫不意外这种引擎是目前***的引擎。

你可以轻易分辨出所使用的引擎是文本导向还是正则导向。如果反向引用或"惰性"量词被实现,则可以肯定你使用的引擎是正则导向的。你可以作如下测试:将正则表达式<>应用到字符串"regex not"。如果匹配的结果是regex,则引擎是正则导向的。如果结果是regex not,则是文本导向的。因为正则导向的引擎是"猴急"的,它会很急切的进行表功,报告它找到的***个匹配 。

正则表达式引擎的小小总结:

正则导向的引擎总是返回最左边的匹配,这是需要你理解的很重要的一点:即使以后有可能发现一个"更好"的匹配,正则导向的引擎也总是返回最左边的匹配。

当把<>应用到"He captured a catfish for his cat",引擎先比较<>和"H",结果失败了。于是引擎再比较<>和"e",也失败了。直到第四个字符,<>匹配了"c"。<>匹配了第五个字符。到第六个字符<>没能匹配"p",也失败了。引擎再继续从第五个字符重新检查匹配性。直到第十五个字符开始,<>匹配上了"catfish"中的"cat",正则表达式引擎急切的返回***个匹配的结果,而不会再继续查找是否有其他更好的匹配。

感谢各位的阅读!关于"正则表达式引擎的内部工作机制是什么"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

引擎 正则 导向 表达式 字符 工作 结果 文本 机制 急切 内容 惰性 更多 篇文章 这是 量词 应用 不错 实用 重要 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网民遭遇网络安全问题 深圳市带动美网络技术有限公司 我国信息网络安全采用标准 上海百度在线网络技术有限公司 1u服务器上架步骤视频 印象笔记默认数据库 资源管理服务器平台 江苏互联网络技术服务合同 高级网络技术练习题答案 联通通用dns的服务器地址 git服务器实现权限管理 网络安全宣传进校园活动方案 软件开发ba 乡镇网络安全自检自查情况 宁波鄞州区惠普机架式服务器 数据库技术与项目实验报告 中国移动数据库机房在居民区 类似tomcat服务器 如何从零开始学习软件开发 绥化华信网络技术支持 中小学网络安全知识竞赛入口 晋中网络技术哪家强 对危害网络安全的行为 青海联想服务器续保安装 内蒙古一对一网络技术开发项目 db2 数据库分区 广州软件开发解决方案维护 再发生危害网络安全 网络安全的监督与管理 推荐的网络安全拦截
0