正则表达式
正则表达式常用来匹配字符串。正则表达式(Regular Expression,在代码中常简写为regex、regexp或RE)。
设计思想:用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串,认为“匹配”了。否则,该字符串就是不合法的。
字符 | 描述 |
---|---|
\d | 匹配一个数字 |
\w | 匹配一个字母或者数字 |
. | 匹配任意字符 |
* | 任意个字符(包含0个) |
+ | 至少一个字符 |
? | 0个或者1个字符 |
{n} | 拓展前一个字符n次 |
{n,m} | 拓展前一个字符n-m次 |
\s | 一个空格 |
^ | 表示行的开头 |
$ | 表示行的结束 |
^\d | 以数字开头 |
\d$ | 以数字结尾 |
[] | 字符集,对单个字符给出取值范围 |
[^] | 非字符集,对单个字符给出排除范围 |
例如:[0-9a-zA-Z_]可以匹配一个数字、字母或者下划线。
re模块
python中的re模块包含所有正则表达式的功能。
分组
正则表达式还有提取子串的强大功能。用()表示的就是要提取的分组。
贪婪匹配
正则匹配默认是贪婪匹配,也就是匹配最长的、尽可能多的字符。
编译
在Python中使用正则表达式时,re模块会将符合正则表达式语法的字符串转化为正则字符串。