一、正则表达式的简介
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 元字符
-
正则表达式中使⽤了很多元字符,⽤来表示⼀些特殊的含义或功能,如下表:
一些无法书写或者具有特殊功能的字符,采用在前面加斜杠""进行转义的方法。例如下表所示:
尚未列出的还有问号?、星号*和括号等其他的符号。所有正则表达式中具有特殊含义的字符在匹配自身的时候,都要使用斜杠进行转义。这些转义字符的匹配用法与普通字符类似,也是匹配与之相同的一个字符。
1.3.3 预定义匹配字符集
- 正则表达式中的一些表示方法,可以同时匹配某个预定义字符集中的任意一个字符。比如,表达式\d可以匹配任意一个数字。虽然可以匹配其中任意字符,但是只能是一个,不是多个。
\d------0~9中的任意一个数字!
\w------任意一个字母或数字或下划线,也就是“AZ,az,0~9,_”中的任意一个!
\s------空格、制表符、换页符等空白字符的一个!
\D------\d的反集,也就是非数字的任意一个字符,等同于[^\d];
\W------\w的反集,即[……\w];
\S------\s的反集,即[^\s]。