19、正则表达式引擎类型与匹配基础解析

正则表达式引擎类型与匹配基础解析

1. 不同类型引擎的类比

在现实生活中,汽车引擎有电动和汽油两种类型。电动引擎相对简单,基本启动就能运行;而汽油引擎则需要更多的维护和关注,比如要小心火花,还可以通过调整火花塞间隙、空气滤清器或汽油品牌等小地方来提升性能,但如果操作不当,引擎性能会下降甚至熄火。

在正则表达式的世界里,也有两种基本不同类型的引擎:DFA(类似于电动引擎)和 NFA(类似于汽油引擎)。这两种引擎类型都已经存在很长时间了,但和汽油汽车更常见一样,NFA 类型似乎使用得更频繁。

2. 正则表达式引擎类型

正则表达式引擎主要分为以下几种类型:
| 引擎类型 | 常见使用的程序 |
| — | — |
| DFA | awk(大多数版本)、egrep(大多数版本)、flex、lex、MySQL、Procmail |
| 传统 NFA | GNU Emacs、Java、grep(大多数版本)、less、more、.NET 语言、PCRE 库、Perl、PHP(所有三个正则表达式套件)、Python、Ruby、sed(大多数版本)、vi |
| POSIX NFA | mawk、Mortice Kern Systems 的实用程序、GNU Emacs(当请求时) |
| 混合 NFA/DFA | GNU awk、GNU grep/egrep、Tcl |

POSIX 标准的出现规范了正则表达式引擎应支持的元字符和特性,以及期望的匹配结果。大致来说,正则表达式引擎有三种类型:
- DFA(无论是否符合 POSIX 标准,表现相似)
- 传统 NFA(最常见,如

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值