码迷,mamicode.com
首页 > 其他好文 > 详细

day19——常用正则表达式、re正则对象和正则匹配效率比较、编译正则对象

时间:2017-11-15 23:33:53      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:.com   tag   对象   特殊字符   效率比较   ges   match   com   img   

正则网站: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(rabc.*)
3 print(type(reg))
4 print(reg)

 

打印结果为:
技术分享
 技术分享

 

day19——常用正则表达式、re正则对象和正则匹配效率比较、编译正则对象

标签:.com   tag   对象   特殊字符   效率比较   ges   match   com   img   

原文地址:http://www.cnblogs.com/yangjinbiao/p/7841414.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!