re正则表达式,是用来对一段文字按照我们想要的条件进行筛选。
导入
inputer re
匹配
re.match()
re.match(pattern,string,modifier),
其中pattern是正则表达式,string是要匹配的字符串,modifier是修饰符控制正则的匹配方式。
- match()方法有两个方法:
- group() :输出匹配到的结果
- span() :输出匹配的范围
result = re.match(pattern,string)
strResult = result.group()
re.search()
说明:与match区别在于,match从头开始匹配,一旦字符串开始位置不符合正则表达式就会匹配失败;search匹配整个字符串。
- re.findall()
说明:当被匹配的字符串中有多个符合正则表达式时,使用re.findall()可以获得符合正则表达式的所有内容。 - re.compile()
说明:compile 函数用于编译正则表达式,生成一个正则表达式( Pattern )对象,供 match() 和 search() 这两个函数使用。 - re.compile(pattern,modifier),
其中pattern是正则表达式,modifier是修饰符。
单字符串匹配规则
字符 | 功能 |
---|---|
. | 匹配任意1个字符(除了\n) |
[] | 匹配[]中列举的字符 |
\d | 匹配数字,也就是0-9 |
\D | 匹配非数字,也就是匹配不是数字的字符 |
\s | 匹配空白符,也就是 空格\tab |
\S | 匹配非空白符,\s取反 |
\w | 匹配单词字符, a-z, A-Z, 0-9, _ |
\W | 匹配非单词字符, \w取反 |
表示数量的规则
字符 | 功能 |
---|---|
* | 匹配前一个字符出现0次多次或者无限次,可有可无,可多可少 |
+ | 匹配前一个字符出现1次多次或则无限次,直到出现一次 |
? | 匹配前一个字符出现1次或者0次,要么有1次,要么没有 |
{m} | 匹配前一个字符出现m次 |
{m,} | 匹配前一个字符至少出现m次 |
{m,n} | 匹配前一个字符出现m到n次 |
表示边界
字符 | 功能 |
---|---|
^ | 匹配字符串开头 |
$ | 匹配字符串结尾 |
\b | 匹配一个单词的边界 |
\B | 匹配非单词边界 |
匹配分组
字符 | 功能 |
---|---|
| | 匹配左右任意一个表达式 |
(ab) | 将括号中字符作为一个分组 |
\num | 引用分组num匹配到的字符串 |
(?P) | 分组起别名 |
(?P=name) | 引用别名为name分组匹配到的字符串 |
分割
re.split()
以匹配到的字符当做列表分隔符,返回列表
替换
re.sub()
re.sub(pattern,replace,string),
其中pattern是被替代的字符的正则表达式,replace是用于替换的字符,string是要匹配的字符串
说明:sub()的意义在于可以快速对匹配的字符串进行处理,比如去除掉字符串中的数字字符