正则表达式基础总结

正则表达式:匹配或查找符合某些规则的字符串数据,通用性强,适用于很多编程语言

要用正则表达式,需导入re模块,re.match(正则,要匹配的字符串)根据正则表达式从头开始匹配字符串数据,match方法进行匹配,group方法来提取匹配到的数据,正则前加r

单字符匹配

. 匹配任意一个字符(除了\n)

[ ]匹配[]中列举的字符

\d 数字0~9

\D 非数字

\s 匹配空白:空格,tab键

\S 非空白

\w 非特殊字符,即a~z,A~Z,0~9,_,汉字

\W  特殊字符 非字母,非数字,非汉字

匹配多个字符的格式

*匹配前一个字符0次或无限次,可有可无

+ 一次或无限次

?一次或0次

{m} 前一个字符出现m次

{m,n}  前一个字符出现m到n次

匹配开头和结尾的正则表达式:

^ 匹配字符串开头 (“^\d.*\d&”,”3s2”)匹配以数字开头以数字结尾,中间不限

$ 匹配字符串结尾

[^指定字符]除指定字符外都匹配  (”[^abc]”,”d”)

匹配分组

| 匹配左右任意一个表达式

(ab) 将括号中字符作为一个分组

\num 引用第num个分组匹配到字符串

(?P<name>) 分组起别名,可以将前面用到的匹配规则起名,然后后面直接用

(?P=name) 引用别名为name分组匹配到的字符串

re模块的高级用法:

re.search(pattern,str) 根据正则表达式查找数据,只查找一次

re.findall(pattern,str)查找出全部匹配项

re.sub(pattern,reply,str,count=1) 将匹配到的数据进行替换,count为替换次数,默认为全部替换

re.split(pattern,str, maxsplit=1)根据匹配进行切割字符串,并返回一个列表,maxsplit为分割次数,默认全部分割

Python贪婪和非贪婪

Python里的数量词默认是贪婪的,总是尝试匹配尽可能多的字符;

非贪婪:匹配尽可能少的字符

贪婪转为非贪婪:在* , ? + {m,n}后加上?

Python中正则表达式匹配数据时字符串前面加上r表示原生字符串,数据里面的反斜杠不需要手动进行转义,r只针对反斜杠起作用,re.match(r”c:\\a”,”c:\\a\\b")

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • python的re模块--细说正则表达式 可能是东半球最详细最全面的re教程,翻译自官方文档,因为官方文档写的是真...
    立而人阅读 23,362评论 4 46
  • Python中的正则表达式(re) import rere.match #从开始位置开始匹配,如果开头没有则无re...
    BigJeffWang阅读 12,123评论 0 99
  • “书非借者不能读也”,到一个静谧而充满墨香的书店,开卷有益,在文字的排列组合和智者的聪慧中汲取营养,孜孜却不觉倦,...
    诸葛吹云阅读 4,223评论 2 6
  • 文//落花聽雨 网络是虚拟的。现实具有的,它同样拥有。而且更胜一筹。网聊就需要有个衡量它的尺度。最重要的是自身的掌...
    落花聽雨阅读 3,514评论 7 17
  • 小时候,好奇北斗星为什么是勺子形的七颗星,于是整天趴在七楼的窗台上,怎么看也看不够! 小时候,好奇植物只要有土、太...
    云昊YH阅读 1,950评论 13 20

友情链接更多精彩内容