2020-07-16→Python爬虫课第四节_正则表达式(上)

一、正则表达式的简介

1.1 概念

正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
简单理解,过滤掉不需要的字符串部分,只保留需要的部分!!!

1.2 正则表达式的应用场景

  • 表单验证(例如 : 手机号、邮箱、身份证.... )
  • 爬虫

1.3 正则表达式对Python的支持

1.3.1 普通字符

  • 字母、数字、汉字、下划线、以及没有特殊定义的符号,都是"普通字符"。正则表达式中的普通字符,在匹配的时候,只匹配与自身相同的一个字符。例如:
    表达式c,在匹配字符串abcde时,匹配结果是:成功;匹配到的内容是c;匹配到的位置开始于2,结束于3。
    PS:下标从0开始还是从1开始,因当前编程语言的不同而可能不同。

match()函数

  • 语法结构:
    match(pattern, string, flags=0)
    第一个参数是正则表达式,如果匹配成功,则返回一个match对象,否则返回一个None
    第二个参数表示要匹配的字符串
    第三个参数是标致位用于控制正则表达式的匹配方式 如: 是否区分大小写,多行匹配等等。

1.3.2 元字符

  • 正则表达式中使⽤了很多元字符,⽤来表示⼀些特殊的含义或功能,如下表:


    image.png

一些无法书写或者具有特殊功能的字符,采用在前面加斜杠""进行转义的方法。例如下表所示:


image.png

尚未列出的还有问号?、星号*和括号等其他的符号。所有正则表达式中具有特殊含义的字符在匹配自身的时候,都要使用斜杠进行转义。这些转义字符的匹配用法与普通字符类似,也是匹配与之相同的一个字符。

1.3.3 预定义匹配字符集

  • 正则表达式中的一些表示方法,可以同时匹配某个预定义字符集中的任意一个字符。比如,表达式\d可以匹配任意一个数字。虽然可以匹配其中任意字符,但是只能是一个,不是多个。

\d------0~9中的任意一个数字!
\w------任意一个字母或数字或下划线,也就是“AZ,az,0~9,_”中的任意一个!
\s------空格、制表符、换页符等空白字符的一个!

\D------\d的反集,也就是非数字的任意一个字符,等同于[^\d];
\W------\w的反集,即[……\w];
\S------\s的反集,即[^\s]。

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

友情链接更多精彩内容