re模块(正则表达式)

时间:2022-02-19 15:47:56
re 模块:正则表达式
import re 内置模块: 1> re.match(pattern,string) pattern:就是正则表达式 string:被操作的对象 match,search 的区别
match 在满足正则表达式时,匹配字符串的开头,要是开头不满足条件就返回一个NONE
result1= re.match('\d+','123adffdjf23423')
result1是一个对象,需要用group方法打印出来
print result1.group()
result2 = re.search('\d+','dfad2342')
search 是全文匹配,匹配到一个后就不往下进行了。 result3 =re.findall('\d+','jfadlskfj333jfalkdjf5555')
findall 比search 匹配的更加的全面,时所有的都匹配,一直匹配下去,直到没有匹配的 生成的pyc是为了更快的调用 com = re.compile('\d+')
print type(com)
com 是一个对象,对象里有一个findall函数
print com.findall('hfdakj3323jkl23jlk32jl23kj32l')
compile 支持match,search,findall相当于就是re
这个compile的相对findall的好处在哪?
比如说我们现在遍历一个日志,我们现在使用findall的方式我们需要先编译正则表达式,然后去匹配,这里我们有一百行数据的时候,我们就需要编译一百次,然后匹配一百次,但是compile的好处就在,我们只需要编译一次,然后匹配一百次就行了,就省下了99次的编译。效率更加的高。这个就和那个pyc结尾的文件作用差不多了 这里我们只能一次匹配一个字符串,后面不能跟多个字符串参数 下面说一个groups,这个groups只和正则表达式的分组有关
比如说现在下面有个一个
result4=re.search('(\d+)\w*(\d+)','123hhh3h3hkkk1kk1')
print result4.group()
print result4.groups() 这个只匹配正则表达式组的对应值,也就是说只匹配第一个的(\d+)和最后一个(\d+),正则表达式的分组用()表示 ++++++++++++++++++++++++++++++++++++++++++++++++ time 模块 时间之间的运算
三种表达方式:
时间戳 time.time()
元祖
格式化的字符串 time.gmtime() time.strftime('%Y-%m-$d ') 三种形式的表达方式可以相互转换 time.strptime()
time.localtime() 结构化的时间
字符串转时间戳