首页 > 代码库 > python 之re模块(正规表达式)简单扯一下犊子
python 之re模块(正规表达式)简单扯一下犊子
#!/usr/bin/env python # -*- coding: utf-8 -*- #re模块 正规表达式 import re #match函数和search函数 ‘‘‘ re.match函数 re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。 函数语法: re.match(pattern, string, flags=0) 函数参数说明: 参数描述: pattern 匹配的正则表达式 string 要匹配的字符串。 flags 标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。 匹配成功re.match方法返回一个匹配的对象,否则返回None。 我们可以使用group(num) 或 groups() 匹配对象函数来获取匹配表达式。 匹配对象方法描述: group(num=0) 匹配的整个表达式的字符串,group() 可以一次输入多个组号,在这种情况下它将返回一个包含那些组所对应值的元组。 groups() 返回一个包含所有小组字符串的元组,从 1 到 所含的小组号。 ‘‘‘ ‘‘‘ res1 = re.match(‘\d+‘,‘ddhfs33y98y392chhdf‘) res2 = re.search(‘\d+‘,‘dasdjkhf7fn84857fjg749‘) if res1: print res1.group() else: print ‘no‘ if res2: print res2.group() else: print ‘no‘ ‘‘‘ ‘‘‘ 区别: match从起始位置开始匹配,只从开头开始找,没有的话返回none search整个内容里去匹配,放眼于整个字符串查找,直到找到为止,找到了就返回一个对象 ‘‘‘ #findall函数 res3 = re.findall(‘\d+‘,‘99dad97765554dadaddd111222dfe333da444dadad555666‘) #print res3 ‘‘‘ findall的作用: 只要和表达式相匹配的都拿过来,会一直找,找到所有的 ‘‘‘ #compile函数 作用:编译表达式 com = re.compile(‘\d+‘) #编译表达式后生成一个对象 #print com.findall(‘99dad97765554dadaddd111222dfe333da444dadad555666‘) ‘‘‘ 如果用同样的表达式去匹配100次不同的字符串, 那么这种方式就是先编译一次,去查找100次,编译表达式这种方式效率更高 ‘‘‘ #小粒子2 #目标:在这段悲催的字符中找出IP地址 #知识点:正规表达式 "\d" 代表一个数字,{1,3}代表出现1-3次 ips = ‘12.34.43.ddsd.dwdda.ddad.rfaw+87dd192.168.32.43_hfshfsh.887fsdf‘ com = re.compile(‘\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}‘) ip = com.findall(ips) print ip #小粒子2 #目标:要求你填写的QQ号必须为5位到12位数字 #知识点: ”^“匹配字符串的开始,”$“匹配字符串的结束,{6,12}代表必须重复最少6次,最多12次,否则都不匹配。 #也就是说,您输入的QQ号码必须是不能少于6位,不能大与12位,否则出错 def check_nums(qq): com = re.compile(‘^\d{6,12}$‘) qqs = com.findall(qq) if len(qqs) == 0: print ‘您输入的QQ号位数有误‘ else: print ‘您的QQ号已受理‘ check_nums(‘996298929‘) ‘‘‘ 那么关于正规表达式的学习,下面推荐一个学习教程:http://deerchao.net/tutorials/regex/regex-1.htm 但这个教程仅仅只是入门而已。那么,平时在工作中用到的时候,不懂的在百度或翻墙到google查一查即可。 ‘‘‘
本文出自 “FA&IT运维-Q群:223843163” 博客,请务必保留此出处http://freshair.blog.51cto.com/8272891/1871032
python 之re模块(正规表达式)简单扯一下犊子
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。