1、开始与结束字符
^与$以^开始对字符串的匹配以$为对字符串的匹配结束
先来看一个例子(关于邮箱的筛选)
代码如下
import re p1 = r'\w+@csdn\.com' p2 = r'^\w+@csdn\.com$' exce = "guoduyinyong's emali is chengxian88@csdn.com." m = re.search(p1, exce) print(m) m = re.search(p2, exce) print(m) exce_2 = "chengxian88@csdn.com" m = re.search(p2, exce_2) print(m) 结果如下:
大家也可以发现不加^$时好像筛选功能更加强大,但当一个格式比较固定的使用^$可能就会有更好的效果
2、定义字符类
import re p = r'[Ii]ooop' print(re.search(p,'Iooop')) print(re.search(p,'IOOOP')) print(re.search(p,'iooop'))
结果如下:
这里的代码其实说的是取I或者i开头的ooop其他的都不匹配
3、字符类取反
import re p = r'[^0-9]' print(re.search(p,'pc00')) print(re.search(p,'45'))
结果如下:
这里代码是匹配字符串中出现除0~9以外的匹配
4、预定义字符串
字符 | 说明 |
. | 匹配任意字符 |
\\ | 匹配反斜杠\字符 |
\n | 匹配换行 |
\r | 匹配回车 |
\f | 匹配一个换页符 |
\t | 匹配一个水平制表符 |
\v | 匹配一个垂直制表符 |
\s | 匹配一个空格符等价于[\t\n\r\f\y] |
\S | 匹配一个非空格符 |
\d | 匹配一个数字字符,等价于[0-9] |
\D | 匹配一个非数字字符,等价于[^0-9] |
\w | 匹配任何语言的单词字符(英文字母,汉字)、数字、下划线、若正则表达式编译标志设置为ASCII,则只匹配[a-zA-Z0-9] |
\W | 等价于[^\w] |
5、量词
字符 | 说明 |
? | 出现0次或1次 |
* | 出现0次或者多次 |
+ | 出现一次或者多次 |
{n} | 出现n次 |
{n,m} | 出现n次但不超过m次 |
{n,} | 至少出现n次 |
代码示例
import re i = re.search(r'\d+', '78391039') print(i) 结果如下: