day19——常用正则表达式re正则对象和正则匹配效率比较编译正则对象
Posted 落后乞丐
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了day19——常用正则表达式re正则对象和正则匹配效率比较编译正则对象相关的知识,希望对你有一定的参考价值。
正则网站:regex101.com
在了解re模块之前,我们可以先了解一下正则表达式,正则表达式在很多语言中都有使用,但是不同的语言直接又有有些细小的区别,下面我们就来列举一下在python语言中常用的一些正则表达式:
re模块
re模块是python中处理正则表达式的一个模块,通过re模块的方法,把正则表达式pattern编译成正则对象,以便使用正则对象的方法。那为什么要使用re模块来把正则表达式搞成正则对象呢,最主要的是可以提高代码的执行效率,我们来看个例子:
1 import timeit 2 print timeit.timeit(setup=\'\'\'import re; reg = re.compile(\'<(?P<tagname>\\w*)>.*</(?P=tagname)>\')\'\'\', stmt=\'\'\'reg.match(\'<h1>xxx</h1>\')\'\'\', number=1000000) 3 print timeit.timeit(setup=\'\'\'import re\'\'\', stmt=\'\'\'re.match(\'<(?P<tagname>\\w*)>.*</(?P=tagname)>\', \'<h1>xxx</h1>\')\'\'\', number=1000000)
打印结果为:
#1.正则匹配是,优先编译成正则对象,然后再进行匹配,这样程序的效率更高
编译正则对象
正则匹配总写一个r是什么意思?
r表示raw的简及raw string 意思是原生字符,也就是说是这个字符串中间的特殊字符不用转义
比如你要表示‘\\n’,可以这样:r\'\\n\'
但是如果你不用原生字符 而是用字符串你得这样:‘\\\\n’
1 import re 2 reg = re.compile(r\'abc.*\') 3 print(type(reg)) 4 print(reg)
打印结果为:
以上是关于day19——常用正则表达式re正则对象和正则匹配效率比较编译正则对象的主要内容,如果未能解决你的问题,请参考以下文章