正则表达式快吗?

正则表达式功能不是因为快而广泛使用,而是可以实现一些复杂的搜索

正则表达式的匹配可以用有限状态自动机实现,有时候会比较快。但是比起固定字符串是会慢一些的(时间常数偏大),有些情况下可以用通常常数更小的KMP等算法。

主要还是因为正则匹配是通用算法,所以会引入很多额外的判断和分支,或者也有很多回溯问题,导致时间常数偏大。

正则表达式时间复杂度

NFA构造O(n),匹配O(nm)
DFA构造O(2^n),最小化O(kn'logn')(N'=O(2^n)),匹配O(m)

n=regex长度,m=串长,k=字母表大小,n'=原始的dfa大小

以上参考知乎的问答

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值