1、动机:
- 文本处理已经成为计算机的常见工作之一
- 对文本内容的搜索,定位,提取是逻辑比较复杂的工作
- 为了快速解决上述问题,产生了正则表达式技术
定义 :
即文本的高级匹配模式,提供搜索,替代等功能。其本质是一系列由特殊符号组成的字串,这个字串即正则表达式。
匹配原理 :
由普通字符和特殊符号组成字符串,通过描述字符的重复和位置等行为,达到匹配某一类字符串的目的
目标 : - 熟练掌握正则表达式符号
- 实现基本的文本搜索,定位,提取,理解正则用法
- 能够适用re模块操作正则表达式
特点:
- 方便文本处理
- 支持语言众多
- 使用灵活多样
2、元字符
1. 普通字符
a 每个字符匹配对应的字符
2. 或
| 匹配 | 两边任意一个正则表达式
3. 匹配单个字符
. 匹配除换行外的任意字符
4. 匹配开始位置
^ 匹配目标字符串的开头位置
5. 匹配结束位置
$ 匹配字符串的结束位置
6. 匹配重复
* 匹配前面的字符出现0次或多次
7. 匹配重复
+ 匹配前面的字符出现1次或多次
8. 匹配重复
? 匹配前面的字符出现0次或1次
9. 匹配重复
{n} 匹配指定的重复次数
10. 匹配重复
{m,n} 匹配前面的正则表达式 m–n次
11. 匹配字符集合
[字符集] 匹配任意一个字符集中的字符
12. 匹配字符集
[^…] 字符集取非,除列出的字符之外任意一个字符
13. 匹配任意(非)数字字符
\d 匹配任意数字字符 [0-9]
\D 匹配任意非数字字符 [^0-9]
14. 匹配任意(非)普通字符
\w 匹配普通字符 [_0-9a-zA-Z] 也能匹配普通汉字
\W 匹配非普通字符
15. 匹配任意(非)空字符
\s 匹配任意空字符 [ \r\t\n\v\f]
\S 匹配任意非空字符
16. 匹配字符串位置
\A 匹配字符串开头位置 ^
\Z 匹配字符串结尾位置 $
绝对匹配 : 正则表达式要完全匹配目标字符串内容
在正则表达式开始和结束位置加上^ $ (或者\A \Z)。这样正则表达式必须匹配整个目标字符串才会有结果
17. 匹配(非)单词边界
\b 匹配单词边界位置
普通字符和非普通字符交界认为是单词边界
\B 匹配非单词边界位置
元字符总结
匹配单个字符
a . \d \D \w \W
\s \S […] [^…]
匹配重复
*+ ? {n} {m,n}
匹配位置
^ $ \A \Z \b \B
其他
| () \