Python基础教程 | 还不会Python正则表达式?看这篇文章试试

今天写爬虫偶然想到了初学正则表达式时候,看过一篇文章非常不错。检索一下还真的找到了。

re模块
 

 

re.search
 

经常用match = re.search(pat, str)的形式。因为有可能匹配不到,所以re.search()后面一般用if statement。

re.match
 

re.match和re.search很相似,只是re.match是从字符串的开头开始匹配。

常用正则字符意义
 

 

  • a, X, 9,等字符匹配自己, 元字符不匹配自己,因为有特殊意义,比如 . ^ $ * + ? { }[ ] \ | ( )

  • . 英文句号,匹配任意字符,不包含'\n'

  • \w 匹配'word'字符,[a-zA-Z0-9]

  • \W 匹配非'word'字符

  • \b 匹配'word'和'non-word'之间边界

  • \s 匹配单个whitespace字符,space, newline, return, tab, form [\n\r\t\f]

  • \S 匹配non-whitespace字符

  • \t, \n, \r 匹配tab, newline, return

  • \d 匹配数字[0-9]

  • ^ 匹配字符串开头

  • $ 匹配字符串结尾

重复
 

‘+’ 一或多次, ‘*’ 零或多次, ‘?’ 零或一次

方括号[]
 

 

[]类似于or

Square brackets can be used to indicate a set of chars, so [abc] matches 'a' or 'b' or 'c'.

Group Extraction圆括号()
 

有时候需要提取匹配字符的一部分,比如刚才的邮箱,我们可能需要其中的username和hostname,这时候可以用()分别把username和hostname包起来,就像r'([\w.-]+)@([\w.-]+)',如果匹配成功,那么pattern不改变,只是可以用match.group(1)和match.group(2)来username和hostname,match.group()结果不变。

findall and groups
 

()和findall()结合,如果包括一或多个group,就返回a list of tuples。

给re.search加^之后是一样的。

re.sub

re.sub(pat, replacement, str)在str里寻找和pattern匹配的字符串,然后用replacement替换。replacement可以包含\1或者\2来代替相应的group,然后实现局部替换。

 

作者:米乐果果

来源:http://www.jianshu.com/p/922e9e56b017


 

————开班喜讯————

温馨提醒:马哥教育Python自动化开发班将于8月28日在北京海淀上地开班,小班制魔鬼式授课,钜惠限时抢位中。

马哥教育2017年Python自动化运维开发实战班,马哥联合BAT、豆瓣等一线互联网Python开发达人,根据目前企业需求的Python开发人才进行了深度定制,加入了大量一线互联网公司:大众点评、饿了么、腾讯等生产环境真是项目,课程由浅入深,从Python基础到Python高级,让你融汇贯通Python基础理论,手把手教学让你具备Python自动化开发需要的前端界面开发、Web框架、大监控系统、CMDB系统、认证堡垒机、自动化流程平台六大实战能力,让你从0开始蜕变成Hold住年薪20万的Python自动化开发人才

课程咨询请长按即可咨询

相关新闻

联系我们

400-080-6560

在线咨询:点击这里给我发消息

邮件:xiujiang.yang@magedu.com

工作时间:周一至周日,00:09-18:30

QR code