前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python中正则表达式的学习

python中正则表达式的学习

作者头像
菜鸟小白的学习分享
发布2020-07-14 20:01:01
4480
发布2020-07-14 20:01:01
举报

常用的元字符

代码

说明

.

匹配除换行符以外的任意字符

\w

匹配字母或数字或下划线

\s

匹配任意的空白符

\d

匹配数字

\b

匹配单词的开始或结束

^

匹配字符串的开始

$

匹配字符串的结束

常用限定符

代码/语法

说明

*

重复零次或更多次

+

重复一次或更多次

?

重复零次或一次

{n}

重复n次

{n,}

重复n次或更多次

{n,m}

重复n到m次

常用反义词

代码/语法

说明

\W

匹配任意不是字母,数字,下划线,汉字的字符

\S

匹配任意不是空白符的字符

\D

匹配任意非数字的字符

\B

匹配不是单词开头或结束的位置

[^x]

匹配除了x以外的任意字符

[^aeiou]

匹配除了aeiou这几个字母以外的任意字符

常用模式修正符

代码/语法

说明

i

表示在进行匹配的时候不区分大小写

m

多行识别.即将字符串视为多行,不管是那行都能匹配

s

将字符串视为单行,转义回车换行符作为普通字符

g

表示全局匹配

x

将模式中的空白忽略

A

强制从目标字符串开头匹配

D

强制尾部无任何内容.若使用$限制结尾字符,则不允许结尾有换行

U

禁止贪婪匹配,只匹配最近的一个字符串(不重复匹配)

e

配合PHP函数preg_replace()使用,可以把匹配来的字符串当作正则表达式执行

贪婪模式和非贪婪模式的区别

贪婪模式,趋向于找到符合要求的最多元素。

非贪婪模式,趋向于找到符合要求的最少元素。

我们以match_str=”abcdefghc“、pattern=”a.*c”例,

贪婪模式的匹配

  • 第一个“取得控制权,匹配成功,控制权交给a;
  • 匹配a成功之后,控制权交给.*;
  • 因为.*匹配所有字符,所以一直进行匹配,指导匹配最后一个”,发现了字符串末尾,这是控制权交给c;
  • c匹配失败(因为已经有.*匹配过了),然后进行回溯;
  • .*回溯到h,控制权给到c;
  • C匹配成功,控制权给到末尾结束符”;
  • 末尾结束符也匹配成功,最终成功匹配中abcdefghc

非贪婪模式的匹配

  • 第一个“取得控制权,匹配成功,控制权交给a;
  • 匹配a成功之后,控制权交给.*;
  • 因为.*可以匹配也可以不匹配,所以在非贪婪模式下,一开始不进行匹配,控制权交给c;
  • C和b不匹配,故而必须要是.*与b进行匹配,匹配成功后控制权再次交给c;
  • C和c匹配,至此匹配成功,输出“abc”
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-06-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 菜鸟小白的学习分享 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 常用的元字符
  • 常用限定符
  • 常用反义词
  • 常用模式修正符
  • 贪婪模式和非贪婪模式的区别
    • 贪婪模式的匹配
      • 非贪婪模式的匹配
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档