在时间复杂度方面,下面的正则表达式之间有什么区别

时间:2016-03-03 11:31:02

标签: python regex

import re
Regex_Pattern = r"^\d\w{4}\.$"
Regex_Pattern = r"^[0-9][a-zA-Z0-9_]{4}[.]{1}$"
print(str(bool(re.search(Regex_Pattern, raw_input()))).lower())

我为regex exp获得了不同的执行时间。第一个执行得比第二个快。 输入appswer。

2 个答案:

答案 0 :(得分:3)

regex101网站上测试您的正则表达式显示,他们都会6 steps找到匹配项。所以他们真的一样。第一个比第二个运行速度快的原因可能与第一个字符串更短的事实有关;解析和编译的时间要少一些。

首先尝试通过创建正则表达式对象sequence = regex.compile(r'regexhere', flags)然后调用其搜索方法sequence.search(test_subject)来单独编译正则表达式。

答案 1 :(得分:2)

实际上\d[0-9]以及\w[a-zA-Z0-9_]相同。唯一的区别是使用[.]{1}{1}冗余)而不是\.,它在运行时方面没有太大区别。