1. 正则表达式的简介
1.1 概念
- 正则表达式是对字符串操作的一种逻辑公式,用事先定义好的特殊字符,以及特定字符的组合,组成一个规则字符串,这个规则字符串用来表达字符串的一种过滤逻辑
1.2 使用场景
- 表单验证(手机号,邮箱,身份证…)
- 爬虫
2. 正则表达式对python的支持
2.1 普通字符
-
字母,数字,汉字,下划线,没有特殊意义的符号,都是普通字符
-
正则表达式中的普通字符,在匹配的时候,只能匹配与自身相同的一个字符
-
例如 表达式c,在匹配字符串abcde时,匹配结果是成功,匹配到的内容是c,匹配的位置开始于2,结束于3
-
match() 函数
- match( pattern, string, flags=0)
- 第一个参数是正则表达式,如果匹配成功,返回一个match对象,否则返回none
- 第二个参数表示要匹配的字符串
- 第三个参数是正则表达式的匹配方式,区分大小写,多行匹配等
2.2 元字符
- 正则表达式中使用了很多元素,用来表示一些特殊的函数和功能
表达式 | 匹配 |
---|---|
. | 小数点可以匹配除了换行符\n之外的任意一个字符 |
竖号 | 逻辑或字符串 |
\ | 对紧随其后的一个字符进行转义 |
[ ] | 匹配字符集中的一个字符 |
[ ^ ] | 对字符集求反,就是上面的反操作,尖号必须在方括号里的最前面 |
- | 定义[ ]里的一个字符区间,例如[ a-z ] |
( ) | 对表达式进行分组,把圆括号内的内容当成一个整体,获得匹配的值 |
一些无法书写或具有特殊功能的字符,采用在前面加斜杠’’ ''进行转义
表达式 | 匹配 |
---|---|
\r, \n | 匹配回车和换行符 |
\t | 匹配制表符 |
\ | 匹配斜杠\ |
^ | 匹配^符号 |
\ $ | 匹配$符号 |
\ . | 匹配.符号 |
上面表格中没有列出的还有?、* 等其他符号。所有正则表达式中有特殊意义的字符在匹配自身的时候,都要使用反斜杠进行转移,转义字符的用法和普通字符相似,是匹配与之相同的一个字符
2.3 预定义匹配字符集
正则表达式的一些表示方法,可以同时匹配某个预定义字符集的任意一个字符,只能是一个,不能多个。
表达式 | 匹配 |
---|---|
\d | 任意一个数字0-9之间 |
\w | 任意一个字母或下划线或数字,就是A-Z,a-z,0-9,_中的任意一个 |
\s | 空格,制表符,换页符等空白字符的任意一个 |
\D | \d的反集,就是非数字的任意一个字符,或作[ ^\d ] |
\W | \w反集,或作[ ^\w ] |
\S | \s反集,或作[ ^\s] |