Python正则表达式


正则表达式可以做什么

1.定规则后,判断什么样的字符串满足这个规则--匹配
2.从很多字符串中找到部分想要的字符串--查询
3.替换部分字符串--替换

正则表达式的特点是:
  1. 灵活性、逻辑性和功能性非常强;
  2. 可以迅速地用极简单的方式达到字符串的复杂控制。
  3. 对于刚接触的人来说,比较晦涩难懂。
第一、表示某个字符的
  • .表示任意字符,除开\n
  • \d:表示数字等价[0-9]
  • \D:表示非数字[^0-9]
  • \s:表示空白字符,不能显示的字符\n \t \r 和空格
  • \S:非空白字符
  • \w:表示单词字符a-z A-Z 0-9 _
  • \W:非单词字符,例如 *#$
    []:匹配中括号里面的任意一个字符
第二部分表示数量
  • *:匹配前一个字符出现0次或者无限次,既可有可无。
  • +:匹配前一个字符出现至少1次或者无限次,即至少1次。
  • ?:匹配前一个字符出现0次或者1次,即要1次,要么没有。
  • {m}:匹配前一个字符出现m次
  • {m,}:匹配前一个字符至少出现m次
  • {m,n}:匹配前一个字符出现m-n次之间,包括m和n次
第三部分:让\r \n \t等转义的地方原始的输出
  • 例如输出:s = "\nabc"
    re.match("\\\\abc",s)
  • 等价于
    re.match(r"\\abc",s)即可
    从这个以后,为了方便,以后所有的都要加上
    re.match(r"\\abc",s)
第四部分表示边界
  • $:匹配字符串结尾
  • ^:匹配字符串开头
  • \b:匹配单词的边界 I love you
  • \B:匹配非单词的边界
第五部分匹配分组
  • |:匹配左右任意一个表达式
  • (ab):将括号中字符串作为一个分组
  • \num:引用分组num匹配到的字符串
  • (?P<name>)分组起别名
  • (?P=name):引用别名为name分组匹配到的字符串
第五部分高级模块
  • re.match("正则表达式","字符串"):从左边第一个字符开始匹配,
    如果前面有匹配不成功的,就算后面有可以匹配的,也是匹配失败
  • re.search("正则表达式","字符串"):从左边开始匹配,如果没有成功,会一直往下匹配,直 到匹配成功为止,除非整个字符都没有匹配成功的部分。如果匹配的时候有多处可以成功,会匹配从左到右边的一出。
  • re.findall("规则","字符串"),查找字符串所有匹配成功的
  • re.sub("规则","要替换成的字符串","字符串")将匹配到的数据进程替换
  • re.split("规则","字符串")根据匹配进行切割字符串
第六部分python贪婪和非贪婪
  • Python里数量词默认是贪婪的,总是尝试匹配尽可能多的字符;
    非贪婪则相反,总是尝试匹配尽可能少的字符。
    *,?,+,{m,n}后面加上,使贪婪变成非贪婪。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • python的re模块--细说正则表达式 可能是东半球最详细最全面的re教程,翻译自官方文档,因为官方文档写的是真...
    立而人阅读 23,381评论 4 46
  • re模块手册 本模块提供了和Perl里的正则表达式类似的功能,不关是正则表达式本身还是被搜索的字符串,都可以...
    喜欢吃栗子阅读 9,532评论 0 13
  • #首先,python中的正则表达式大致分为以下几部分: 元字符 模式 函数 re 内置对象用法 分组用法 环视用法...
    mapuboy阅读 5,563评论 0 51
  • 近几日在追剧《白鹿原》,之前倒是看过几页书,但干读实在是无趣,毕竟我们是改革开放后根正苗红的社会主义接班人,对魔幻...
    李梓栗子梨阅读 10,094评论 1 3
  • 新月一整天都和丫头四处转悠,她们去游湖,赏花,买衣服……新月想了想,这应该是这阵子最开心的一天了。 要不是考虑着丫...
    卿浅墨阅读 4,919评论 0 8

友情链接更多精彩内容