实现了普通的正则引擎无法实现的两大功能
发布时间:2020-12-14 01:38:45 所属栏目:百科 来源:网络整理
导读:多正则匹配 要判断输入文本匹配了多个正则中的哪个,不需要逐个判断, 扫描一遍就得到结果(google re2.set 是一个半成品的多正则匹配)。 正则表达式并交差 正则表达式 “ 并 ”、“ 交 ”、“ 差 ”、“ 连接 ”、“ 重复 ” 任意组合,这个功能 昨天刚完
多正则匹配要判断输入文本匹配了多个正则中的哪个,不需要逐个判断, 扫描一遍就得到结果(google re2.set 是一个半成品的多正则匹配)。正则表达式并交差正则表达式 “并”、“交”、“差”、“连接”、“重复” 任意组合,这个功能 昨天刚完成,可以借此实现“环视”功能的一个超集。很多不严肃的论断认为环视无法用 DFA 实现,误导了很多人,包括我自己。这个功能 re2 不支持,其他正则引擎(perl,pcre)以“环视”的方式实现部分“交”和“差” 的功能。 与 re2 比较google re2 在算法上基于严格的自动机理论,性能上远远超越了其他引擎。 我的引擎对于自动机理论的应用更加彻底,更加全面,代码上也仔细优化,从而: 性能上(仅功能1):10万个正则,待匹配文本平均长度30字节,判断出匹配了哪个(或哪些),平均耗时5微秒,内存消耗350M google re2.set 在相同的测试中,平均耗时35微秒,内存消耗2G 详细说明实现并交差时,为了便于调试,我做了一个图形化页面,另一方面,这个页面也是一个很好的 演示页面你如果对这个技术感兴趣: 下载页面, 用法文档 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容