程序员用一小时带你彻底掌握正则表达式!学不会就用来祭天!最全

正则描述了一个规则,通过这个规则可以匹配一类字符串。 在给大家分享之前呢,小编推荐一下一个挺不错的交流宝地,里面都是一群热爱并在学习Python的小伙伴们,大几千了吧,各种各样的人群都有,特别喜欢看到这种大家一起交流解决难题的氛围,群资料也上传了好多,各种大牛解决小白的问题,这个Python群:330637182 欢迎大家进来一起交流讨论,一起进步,尽早掌握这门Python语言。

如何学习正则?1、学习正则表达式的语法规则2、练习使用正则并能解决实际问题针对上面的每个点我会分别写一篇文章来说明,用最短的时间学会正则表达式。这篇文章讲述正则表达式的语法和使用说明,让你半小时学会正则表达式。学习正则表达式语法,主要就是学习元字符以及它们在正则表达式上下文中的行为。为了便于理解,文章所有示例的正则表达式用“regex=正则”表示,“=”号后面就是正则表达式,匹配到的字符会用颜色标注出来,连续匹配到的字符用一深一浅两种颜色区分。比如:regex=d+,其中d+就是一个正则,它匹配任意多于1个的数字,如下:

标准字符集合:标准字符集合是能够与“多种普通字符”匹配的简单表达式,比如:d、w、s匹配数字0到9的任意数字可以regex=[0-9]也可以regex=d标准字符集要注意区分大小写,大写是相反的意思regex=D,则匹配非数字字符,即不能匹配数字0到9,如下:

限定字符(量词)限定字符又叫量词,是用于表示匹配的字符数量的。匹配任意1位数字可以regex=d匹配任意2位数字可以regex=dd匹配任意3位数字可以regex=ddd匹配任意16位数字,再这么写就有点傻了这里引入用于表示数量限定字符“”“”,n是一个非负整数,匹配确定的n次注意:regex=dd匹配任意4个数字不是6个,量词只对它前面的字符负责,regex=dd匹配的内容如下:

下面是一些常用的限定字符说明

定位字符(字符边界)

定位字符也叫字符边界,标记匹配的不是字符而是符合某种条件的位置,所以定位字符是“零宽的”。

“”匹配这样一个位置:前面的字符和后面的字符不全是w

如果在“hello,hello1 hello hello1 bhello”这个字符串里匹配regex=hello,

匹配到的结果如下:

除小数点“.”外,标准字符集合包含在方括号中,仍然表示集合范围。

regex=[d.+]匹配0-9的任意一个数字或者小数点“.”或者加号“+”

也就是说d在自定义集合中仍然表示数字,但是小数点在字符集合中只表示小数点本身,而不是除“ ”之外的任何单个字符。

括号中的表达式匹配到的内容会存储起来,并可以获取到括号中表达式匹配到的内容3、每一对括号会分配一个编号,使用( )的捕获根据左括号的顺序从1开始自动编号,编号为0的捕获是整个正则表达式匹配到的文本。捕获组( )可以把匹配的内容存储起来,那么如何获取( )捕获到的内容呢,下面介绍反向引用。反向引用“ umber”每一对括号会分配一个编号,使用( )的捕获根据左括号的顺序从1开始自动编号。通过反向引用,可以对分组已捕获的字符串进行引用。“ umber”中的number就是组号regex=(abc)d可以匹配字符串abcdabc,即表示把获取到的第一组再匹配一次,如下:

regex=loe (?!story)匹配的结果如下(匹配“loe ”后面不能是story):

如果想匹配“room”或“loom”,请用括号创建子表达式,regex=(r|l)oom,如下:

谢谢阅读!

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180228A0DOMM00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券