今天我们来谈谈python中模块的使用,在探讨模块前先来了解一下正则表达式的具体用法。
1.正则表达式
正则表达式就是匹配 字符串内容的一种规则。谈到正则就和字符串相关了,首先我们要知道什么是字符组。
字符组
在同一个位置可能出现的各种字符组成了一个字符组,在正则表达式中用[]表示 字符分为很多类,比如数字、字母、标点等等。 假如你现在要求一个位置"只能出现一个数字",那么这个位置上的字符只能是0、1、2...9这10个数之一。
字符:
元字符 |
匹配内容 |
. | 匹配除换行符以外的任意字符 |
w | 匹配字母或数字或下划线 |
s | 匹配任意的空白符 |
d | 匹配数字 |
匹配一个换行符 | |
匹配一个制表符 | |
匹配一个单词的结尾 | |
^ | 匹配字符串的开始 |
$ | 匹配字符串的结尾 |
W |
匹配非字母或数字或下划线 |
D |
匹配非数字 |
S |
匹配非空白符 |
a|b |
匹配字符a或字符b |
() |
匹配括号内的表达式,也表示一个组 |
[...] |
匹配字符组中的字符 |
[^...] |
匹配除了字符组中字符的所有字符 |
量词:
量词 |
用法说明 |
* | 重复零次或更多次 |
+ | 重复一次或更多次 |
? | 重复零次或一次 |
{n} | 重复n次 |
{n,} | 重复n次或更多次 |
{n,m} | 重复n到m次 |
正则. ^ $的具体用法
. 可以匹配任意字符 ^只从开头匹配 $只匹配结尾的
正则 * + ? { }的用法
*表示重复零次或多次
+表示重复一次或多次
?表示重复零次或一次
{}表示匹配多少次字符
注意:前面的*,+,?等都是贪婪匹配,也就是尽可能匹配,后面加?号使其变成惰性匹配
字符集[ ] 和[ ^ ]
李[杰莲英二棍子]* 表示匹配“李”字后面[杰莲英二棍子]的字符任意次
李[^和]* 表示匹配一个不是“和”的字符任意次
[d] 表示匹配任意一个数字
[d]+ 表示匹配任意个数字
分组()与或| [^]
转义符
在正则表达式中,有很多有特殊意义的是元字符,比如d和s等,如果要在正则中匹配正常的"d"而不是"数字"就需要对""进行转义,变成'\'。
在python中,无论是正则表达式,还是待匹配的内容,都是以字符串的形式出现的,在字符串中也有特殊的含义,本身还需要转义。所以如果匹配一次"d",字符串中要写成'\d',那么正则里就要写成"\\d",这样就太麻烦了。这个时候我们就用到了r'd'这个概念,此时的正则是r'\d'就可以了。
re模块的常用方法