支持 并、交、差 的正则表达式引擎

阅读更多关于《支持 并、交、差 的正则表达式引擎》

先强调一点,在我的引擎中,所有正则表达式的语法结构,包括 补 都是在编译时完成的,对匹配性能无任何影响,切记!…… 现在可以开始了:

正则表达式,描述的是正则语言, 学过形式语言与自动机理论的人应该都知道,正则语言在运算下都是封闭的;但是,根据 Wikipedia 的描述,到目前为止,还没有任何一个已知的正则流派(Flavor)将纳入正则语法。理论与实践之间竟然隔着这么巨大的鸿沟!

并: A  ||  B 能匹配 A 或者能匹配 B 这三种操作都可以编译为 DFA,
从而非常高效地执行匹配
交: A && B 能匹配 A 并且能匹配 B
差: &! B 能匹配 A 但不能匹配 B,即从 A 中排除 B

继续阅读