1.1简介
今天富哥就给大家讲讲Python正则表达式的使用技巧。正则表达式是通过一系列特殊格式的匹配符号来描述字符串的工具。
正则表达式可以用来快速检测字符串的格式,找出符合特定规则的字符串片段,并根据特定规则将字符串替换或重组为新的字符串。
2.正则表达式
2.1表达式
2.1.1重新编译
使用re.compile方法定义一个模式,其他方法可以调用该模式。
url?=?"https://tongfu.net/home/35.html"pattern?=?re.compile(r"tongfu.net",?re.I)print(re.findall(pattern,?url))
2.1.2 re.template
re.template方法类似于re.compile方法,可以达到相同的目的。
url?=?"https://tongfu.net/home/35.html"pattern?=?re.template(r"tongfu.net",?re.I)print(re.findall(pattern,?url))
2.2匹配
2.2.1重新匹配
Re.***tch可以用pattern匹配字符串,结果是一个对象,可以有很多函数。
从字符串的开头重新匹配匹配项。如果模式不包含字符串的开头,匹配将失败!
url?=?"https://tongfu.net/home/35.html"***tch?=?re.***tch(r"https://([^/]+)/home/(d+).html",?url)print(***tch.group())print(***tch.groups())
2.2.2重新搜索
Re.search和re.***tch类型,区别在于re.search不从字符串的开头开始匹配。
如果我们的模式本身从字符串的开头开始匹配,我们建议重新匹配,因为这样更快!
url?=?"https://tongfu.net/home/35.html"***tch?=?re.search(r"home/(d+).html",?url)print(***tch.group())print(***tch.groups())
2.2.3
Re.findall可以直接返回一个元组数组,并且可以实现多组匹配。
urls?=?"https://tongfu.net/home/35.html,"????????"https://tongfu.net/home/8.html"***tches?=?re.findall(r"https://([^/]+)/home/(d+).html",?urls)print(***tches)
2.3替换
2 . 3 . 1 re sub
Re可用于将模式匹配的字符串片段替换为我们想要的内容,模式中的匹配组也可应用于替换内容。
urls?=?"https://tongfu.net/home/35.html,"????????"https://tongfu.net/home/8.html"***tches?=?re.sub(r"/home/(d+).html",?r"/homepage/1.htm",?urls)print(***tches)
2.3.2
re.subn和re.sub在字符串替换的功能上没有区别。re.subn比re.sub多一个替换计数,这将反映在返回值中。
urls?=?"https://tongfu.net/home/35.html,"????????"https://tongfu.net/home/8.html"***tches?=?re.subn(r"/home/(d+).html",?r"/homepage/1.htm",?urls)print(***tches)
2.4修饰符
修饰符是参数标志,用于补充模式。
re.I忽略大小写敏感,就是不管大小写问题,字母对就算匹配了。re.L本地化识别匹配。re.M多行匹配,默认正则表达式会在遇到换行符后结束匹配,设置这个之后就会一直匹配到末尾。re.S使字符“.”匹配换行符,默认字符“.”是不包括换行符的。re.U使用Unicode解析字符串,它会影响“w”,“W”,“b”,“B”的作用。re.X这个福哥还没有研究过,官方说法就是可以让编写pattern更加简单。
3.摘要
今天富哥带童鞋们学习一下Python的正则表达式库re的使用技巧。在编程各种语言时,正则表达式是非常重要的库。使用正则表达式可以让我们处理字符串更加简单优雅~ ~
本文来自铁石心肠投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/602123.html