前言
- re模块是python本地库中匹配字符串的模块,学习re模块的前提必须要学习一些基础的正则表达式,明白正则表达式中的一些概念,你才能更好的掌握这个模块。
正则表达式
常用元字符
元字符 |
匹配内容 |
. |
匹配除换行符外的任意字符 |
\b |
匹配单词的开始或结束 |
\d |
匹配数字,等价于 [0-9]。 |
\s |
匹配空白符,等价于 [ \f\n\r\t\v] |
\w |
匹配字母或数字,等价于 “[A-Za-z0-9_]” |
^ |
匹配字符串的开始 |
$ |
匹配字符串的结束 |
反义元字符
元字符 |
描述 |
\B |
匹配不是单词的开始或结束的位置 |
\D |
匹配非数字的任意字符,等价于 [^0-9]。 |
\S |
匹配不是空白符的字符,等价于 [^ \f\n\r\t\v] |
\W |
匹配非字母或数字任意字符,等价于 [^A-Za-z0-9_] |
\A |
仅匹配字符串开头,同^ |
\Z |
仅匹配字符串结尾,同$ |
[^aeiou] |
匹配非aeiou得任意字符 |
常用量词
代码 |
描述 |
* |
重复零次或更多次 |
+ |
重复一次或更多次,等价于 {1,} |
? |
重复零次或一次等价于 {0,1} |
{n} |
重复n次 |
{n,} |
重复n次或更多次 |
{n,m} |
重复n到m次 |
- \ : 斜杠字符转义
- ():括号代表分组
- | : 或者的意思
- []: 字符集
- ? : 正则表达式默认规则是贪婪匹配,在后面加个问号可取消贪婪匹配
compile = ".*?"
. 是任意字符
* 是取 0 至 无限长度
? 是非贪婪模式。
全意:除换行符外匹配尽量少的任意字符
.*?a
举例:
匹配IP地址:192.168.120.121
(\d{
3}\.){
3}\d{
3}
((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){
3}(2[0-4]\d|25[0-5]|[01]?\d\d?)
身份证
^(\d{
6})(\d{
4})(\d{
2})(\d{
2})(\d{
3})([0-