-
定义:
高级文本匹配模式,提供了搜索、替代等功能。本质是由一系列特殊符号和字符组成的子串,这个子串即是正则表达式。这个表达式描述了字符和字符重复行为,可以匹配一类特征的字符串。 -
特点:
正则表达式特点:- 方便进行检索和修改
- 支持语言众多
- 灵活多用
- Mongo正则类型,Django等框架作为URL匹配,爬虫
-
用于匹配的函数
re.findall(pattern, string)
功能:使用正则表达式匹配字符串
参数: pattern 正则表达式 string 目标字符串
返回值:一个列表 匹配到的所有内容
- 元字符(即正则表达式中有特殊含义的符号)
1. 普通字符
元字符 : abc
匹配规则 :匹配相应的普通字符
2. 或
元字符 : ab|cd
匹配规则 : 匹配竖线两边任意一个正则表达式符合的情况
PS: 竖线|两侧不要没用的空格
3. 匹配单一字符
元字符 : .
匹配规则 : 匹配除了换行之外的任意字符
4. 匹配开始位置
元字符: ^(上箭头)
匹配规则: 匹配一个字符串的开始位置
例: re.findall("^hello", "hello world") ---> ['hello']
re.findall("^hello", "tom, hello") ---> []
5. 匹配结束位置
元字符: $
匹配规则: 匹配目标字符串的结束位置
6. 匹配重复
元字符: *
匹配规则: 匹配前面的正则表达式重复0次或多次(>=0)
例: ab* a 重复0次 ab 重复1次 abb 重复2次 ......
7. 匹配重复
元字符: +
匹配规则: 匹配前面的正则表达式重复1次或多次(>=1)
8. 匹配重复
元字符: ?
匹配规则: 匹配签的正则表达式重复0次或1次(0,1)
9. 匹配重复
元字符: {n}
匹配规则: 匹配指定的重复次数
例: ab{3} ---> abbb
10. 匹配重复
元字符: {m,n}
匹配规则: 匹配前面的正则表达式重复m次到n次
例: ab{3,5} ---> abbb abbbb abbbbb
11. 匹配字符集合
元字符: []
匹配规则: 匹配括号范围内的任意一个字符
例: [a-z] [A-Z] [1-9]....
12. 匹配字符集合
元字符: [^...]
匹配规则: 匹配除指定字符集之外的任意字符
13. 匹配任意(非)数字字符
元字符:\d \D
匹配规则: \d 匹配任意数字字符([0-9])
\D 匹配任意非数字字符([^0-9])
14. 匹配(非)普通字符 (普通字符:数学字母下划线)
元字符: \w \W
匹配字符: \w 匹配任意一个普通字符([_0-9a-zA-Z])
\W 匹配任意非普通字符([^_0-9a-zA-Z])
15. 匹配(非)空字符
元字符: \s \S
匹配规则: \s 匹配任意空字符 \S 匹配任意非空字符
[\n\t\r\0]
16. 匹配起止位置
元字符: \A \Z
匹配规则: \A匹配开始位置(^) \Z匹配结束位置($)
绝对匹配: \Aabc\Z ——> 只能匹配abc(且被匹配的字符串也必须是abc)
17. 匹配单词边界位置
元字符: \b \B
匹配规则: \b 匹配单词的边界 \B 匹配非单词的边界
单词边界: 数字字母下划线和其他字符的交界位置为单词的边界