Python正则表达式经典入门教程
本文实例总结了Python正则表达式基本用法。分享给大家供大家参考,具体如下: 正则表达式在平时做文本处理(爬虫程序去解析html中的字段,在分析log文件的时候需要抓取一些关键数据)的时候经常会用到。一般我们会使用到Python的re库。如果正则表达式自己代码中反复被用到的时候,我们可以将这个正则表达式使用re.compile函数转换成一个object方便调用。 match 将输入的字符串从第一个字符开始匹配,如果不匹配将会直接返回空。 search 和match不同,search能自由的在字符串中任一开始位置开始匹配,直到匹配上了。 re中的选项 通常在flag里面可以设置.
sub 替换 import re phone='188-88-88 # this is my phone number' num = re.sub(r'#.*$','',phone) # num ==188-88-88 num = re.sub(r'D',phone) # num = 1888888 还能使用这个来做代码的转义,有点像在 sublime text里面使用的查找替换。比如说我需要将C语言里面的宏定义转换成lua里面的变量定义 import re print( re.sub( r'#defines+([a-zA-Z_]+)s+([a-zA-Z_0-9]+)',r'_G.1 = 2','#define MAX_RECV_SIZE 100' ) ) #_G.MAX_RECV_SIZE = 100 subn函数类似,只是能定制替换的次数。 findall 将匹配到的内容返回成一个数组,这个应该是比较常用的方法。 print( re.findall( 'd+','66,88,777' ) ) # ['66','88','777'] finditer 匹配的内容以迭代器的方式返回,我们可以对这个做循环,返回的时候MatchObject for num in re.finditer( 'd+',777' ): print num.group() ''' 66 88 88 777 ''' split re.split(pattern,string,maxsplit=0,flags=0) >>> re.split(',','Words,words,words.') ['Words',' words',' words.'] >>> re.split('W+','words',''] >>> re.split('(W+)','.',''] 大写的W表示了非字串,这个在语法里面可以查到。如果加了括号,将不会省略掉匹配到的split的字串。最后这个在数组中作为字串分隔符的,.都被保留在数组中了。 escape 这个函数是一个辅助函数,当大量编写正则表达式的时候,可能我们固定的一些字串中包含了正则的保留字串,但是我们不需要让程序当它是re表达式的时候,可以使用这个函数将字串做转换。 re.escape('1234@gmail.com') # result 1234@gmai.com 备注语法:
PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用: JavaScript正则表达式在线测试工具: 正则表达式在线生成工具: 更多关于Python相关内容可查看本站专题:《Python正则表达式用法总结》、《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》 希望本文所述对大家Python程序设计有所帮助。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |