正则表达式--re模块的使用
re模块使用 regex=compile(pattern,flags=0) 功能:生产正则表达式对象 参数:pattern 正则表达式 flags 功能标志位 扩展正则表达式的匹配 返回值:正则表达式对象 import re s = ‘Alxe:1994,Sunny:1993‘ pattern = r‘(w+):(d+)‘ #使用compiel对象调用 regex=re.compile(pattern) l=regex.findall(s) print(l) #[(‘Alxe‘,‘1994‘),(‘Sunny‘,‘1993‘)] 一、re.findall(pattern,string,flags=0) 功能:根据正则表达式匹配目标字符串内容 参数:pattern 正则表达式 string 目标字符串 flags 功能标志位,扩展正则表达式的匹配 返回值:匹配到的内容列表,如果正则表达式有子组,则只能获取到子组对应的内容 s = "Alex:1994,Sunny:1993" pattern = r"(w+):(d+)" # re模块调用findall l = re.findall(pattern,s) print(l) #[(‘Alex‘,‘1993‘)] 二、regex.findall(string,pos,endpos) 功能:根据正则表达式陪陪目标字符串内容 参数:string 目标字符串 pos 截取目标字符串的开始匹配位置 endpos 截取目标字符串的结束匹配位置 返回值:匹配到的内容列表,如果正则表达式有子组,则只能获取到子组对应的内容 import re s = ‘Alxe:1994,Sunny:1993‘ pattern = r‘w+‘ #使用compiel对象调用 regex=re.compile(pattern) l=regex.findall(s,2,8) print(l) #[‘ex‘,‘199‘] 三、re.split(pattern,flags=0) 功能:使用正则表达式匹配内容,切割目标字符串 参数:pattern 正则表达式 string 目标字符串 flags 功能标志位,扩展正则表达式的匹配 返回值:切割后的内容列表 import re s = ‘Alxe:1994,Sunny:1993‘ l=re.split(r‘:|,‘,s) l1=re.split(r‘[,:]‘,s)按列表切割可以切割两个以上 print(l) print(l1) #[‘Alxe‘,‘1994‘,‘Sunny‘,‘1993‘] #[‘Alxe‘,‘1993‘] 四、re.sub(pattern,replace,max,flags=0) 功能:使用一个字符串替换正则表达式匹配到的内容 参数:pattern 正则表达式 replace 替换的字符串 string 目标字符串 max 最多替换几处,默认替换全部 flags 功能标志位,扩展正则表达式的匹配 返回值:替换后的字符串 import re s=re.sub(r‘s+‘,‘#‘,‘This is a test‘,2) print(s) This#is#a test 五、re.subn(pattern,flags=0) 功能:使用一个字符串替换正则表达式匹配到的内容 参数:pattern 正则表达式 replace 替换的字符串 string 目标字符串 max 最多替换几处,默认替换全部 flags 功能标志位,扩展正则表达式的匹配 返回值:替换后的字符串和替换了几处 #替换匹配的内容 s=re.subn(r‘s+‘,2) print(s) #(‘This#is#a test‘,2) 六、re.finditer(pattern,flags=0) 功能:根据正则表达式匹配目标字符串内容 参数:pattern 正则表达式 string 目标字符串 flags 功能标志位 扩展正则表达式的匹配 返回值:匹配结果的迭代器 import re s=‘2019年,建国70年‘ pattern=r‘d+‘ it=re.finditer(pattern,s) # print(dir(it.__next__())) for i in it: print(i.group())#获取match对象对应内容 #2019 #70 七、re.fullmatch(pattern,flags=0) 功能:完全匹配某个目标字符串 参数:pattern 正则 string 目标字符串 返回值:匹配内容match object #完全匹配 m=re.fullmatch(r‘w+‘,‘Jame1‘) print(m.group()) #Jame1 八、re.match(pattern,flags=0) 功能:匹配某个目标字符串开始位置 参数:pattern 正则 string 目标字符串 返回值:匹配内容match object #匹配开始位置 m=re.match(r‘[A-Z]w*‘,‘Hello world‘) print(m.group()) #Hello 九、re.seatch(pattern,flags=0) 功能:匹配目标字符串第一个符合内容 参数:pattern 正则 string 目标字符串 返回值:匹配内容match object #匹配第一处 m=re.search(r"[A-Z]w*",‘ Hello world‘) print(m.group()) Hello compile对象属性
match对象的属性方法
功能:获取match对象匹配内容 参数:默认为0表示获取整个match对象内容,如果是序列号或者组名则表示获取对应子组内容 返回值:匹配字符串 flags参数扩展 1.使用函数:re模块调用的匹配函数。如:re.compile,re.findall,re.search... 2.作用:扩展丰富正则表达式的匹配功能 3.常用flag
4.使用多个flag 方法:使用按位或连接? 例如:flags = re.I | re.A ? s = """Hello 北京 """ # 自能匹配ASCII regex = re.compile(r‘w+‘,flags=re.A) l = regex.findall(s) # [‘Hello‘] print(l) # 不区分大小写 regex1 = re.compile(r‘[A-Z]+‘,flags=re.I) l = regex1.findall(s) print(l) # [‘Hello‘] # 让.匹配换行 regex2 = re.compile(r‘.+‘,flags=re.S) l = regex2.findall(s) print(l) # [‘Hellon北京n‘] # ^$ 匹配每行开头结尾 regex3 = re.compile(r‘Hello$‘,flags=re.M) l = regex3.findall(s) print(l) # [‘Hello‘] pattern = """ w+ #hello s+ #匹配换行 w+ #北京 """ regex4 = re.compile(pattern,flags=re.X) l = regex4.findall(s) print(l) # [‘Hellon北京‘] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |