python re模块介绍_Python基础(十)re模块

Python基础阶段快到一段落,下面会陆续来介绍python面向对象的编程,今天主要是补充几个知识点,下面开始今天的内容。

一、反射

反射的作用就是列出对象的所有属性和方法,反射就是告诉我们,这个对象到底是什么,提供了什么功能,

可以伪造Web框架的路由系统。

举个例子:

如上所看,dir是一个内置的反射函数,可以列出对象的属性和方法。那么看一下有哪些反射内置函数

dir([obj]):调用这个方法将返回包含obj大多数属性名的列表(会有一些特殊的属性不包含在内),obj的默认值是当前的模块对象

hasattr(obj,attr):  这个方法用于检查obj是否有一个名为attr的值的属性,返回一个布尔值。

getattr(obj,attr):  调用这个方法将返回obj中名为attr值的属性的值,例如如果attr为'bar'则返回obj.bar.

setattr(obj,attr,val):  调用这个方法给obj的名为attr的值的属赋值为val,例如如果attr为'bar',则相当于obj.bar=val

下面举个例子来把上面的内置函数应用到实际环境中:

从上面的脚本里可以看到有一些想这种__import__、__name__、__main__的函数,下面我们来介绍一下这种函数:

__name__: 只有执行当前文件时,当前文件的特殊变量__name__=='__main__'才会生效,一般这个函数用到主函数中;

__file__:  当前py文件所在相对路径,要和os.path.abs()配合使用;

__cached__: 字节码存放位置pyc文件;

__import__(字符串):  可以通过__import__()函数导入模块;

__dic__:  获取程序注释

__package__:模块在包里面

二、hashlib加密模块

用于加密相关的操作,代替了md5和sha模块,主要提供SHA1、SHA224、SHA256、SHA384、SHA512、MD5算法。这里只介绍md5加密,下面请看例子:

以上加密算法虽然依然非常厉害,但存在缺陷,即:通过撞库可以反解,所以有必要对加密算法中添加自定义key做二次加密。

三、re模块

python中re模块提供了正则表达式相关操作。

1、 字符串匹配:

.    匹配除换行符以外的任意字符

\w 匹配字符或数字或下划线或汉字

\s  匹配任意空白字符

\d 匹配数字

\b 匹配单词的开始或结束

^  匹配字符串的开始

$   匹配字符串的结束

2、字符串次数匹配:

* 重复0次或多次

+ 重复1次或多次

?  重复0次或1次

{n} 重复n次

{n,} 重复n次或更多次

{n,m} 重复n到m次

3、re模块的方法

方法一:match

match:从起始位置开始匹配,匹配成功返回一个对象,未匹配成功返回None.

举例说明:

方法二:search

search: 浏览整个字符串去匹配第一个,为匹配成功返回None,这里强调一下match方法是从开头去匹配。

格式: search(pattern,string,flags=0)

举例说明:

方法三:findall

findall:获取非重复的匹配列表;如果有一个组则以列表形式返回,且每一个匹配均是字符串;如果模型中多个组,则以列表形式返回,且每一个匹配均是元组;空的匹配也会包含在结果中。

格式:findall(pattern,string,flags=0)

举例说明:

方法四:sub

sub:替换匹配成功的指定位置的字符串

举例说明:

方法五:split

split:根据正则匹配分割字符串

举例说明:

练习:

1、拼接IP地址:

2、拼接手机号:

3、拼接邮箱地址:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值