作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!
原链:http://www.cnblogs.com/vamei/archive/2012/08/31/2661870.html
笔记:一半的笔记,半吊子水平
#第25讲 re正则 #语法: #re.match(pattern, string, flags=0) #两个参数,pattern 匹配的正则表达式 str 需要正则匹配字符串 flag 大小写多行匹配 import re m = re.search(‘[0-9]‘,‘fdaf6dfae‘) print (m.group(0)) print (m.group()) #返回就是匹配到的数字 ‘‘‘ 关于group 在我们上面的匹配中没有引入group,整个表达式就是一个组,group()同group(0),所以输出是一致的 所以print 那里用了m.group(0) ‘‘‘ a = ‘13abc456‘ print (re.search(‘([0-9]*)([a-z]*)([0-9]*)‘,a).group(0)) #返回group(0) 132abc456 print (re.search(‘([0-9]*)([a-z]*)([0-9]*)‘,a).group(1)) #返回group(1) 第一个括号匹配部分 print (re.search(‘([0-9]*)([a-z]*)([0-9]*)‘,a).group(2)) #返回group(2) 第二个括号匹配部分 print (re.search(‘([0-9])*([a-z])*([0-9]*)‘,a).group(3)) #返回group(3) 第三个括号匹配部分 ‘‘‘ 1. 正则表达式中的三组括号把匹配结果分成三组 group() 同group(0)就是匹配正则表达式整体结果 group(1) 列出第一个括号匹配部分,group(2) 列出第二个括号匹配部分,group(3) 列出第三个括号匹配部分。 2. 没有匹配成功的,re.search()返回None 3. 当然郑则表达式中没有括号,group(1)肯定不对了 就会报错,indexerror,no such group 没有这个group ‘‘‘ #正则表达式的函数 #m = re.search(pattern,str)#搜索整个字符串,直到发现符合的字符串 #m = re.match(pattern,str)#从头检查str是否符合正则表达式,必须从第一个字符就相符 m = re.search(‘[0-9]‘,‘fdaf6dfae‘) #这个如果用match函数匹配,返回是None #字符串是f开头的,不符合‘([0-9])‘的要求 #正则匹配的字符进行替换 #str = re.sub(pattern, replacement, str) a = re.sub(‘([0-9])‘,‘6‘,‘adf3dsf‘) print (a) #输出后3就被替换成了6 #正则匹配的字符进行切片 a = re.split(‘([0-9])‘,‘faffd3fdf‘) print (a) #输出后整个str被切片成3片,前半部分字符,数字,后半部分字符,放在list返回 #正则匹配搜索字符串 a = re.findall(‘a‘,‘fdsagr‘) print (a) #输出就是把符合的字符串放在list返回 #作者最后附注了re.compile,让去了解 #找到了资料,看不懂 #编译正则表达式模式,返回一个对象的模式。(可以把那些常用的正则表达式编译成正则表达式对象,这样可以提高一点效率。) #语法:re.compile(pattern,flags=0) import re tt = "Tina is a good girl, she is cool, clever, and so on..." rr = re.compile(r‘\w*oo\w*‘) print(rr.findall(tt)) #查找所有包含‘oo‘的单词 #\w 匹配单词 * 匹配一个字符0或无限次(重复>=0次) #r 是防止转义 保留原有的样式
时间: 2024-11-15 12:40:36