概述
步骤1获取当前时间
>>> import time
>>> localtime = time.localtime(time.time())
>>> print("localtime:", localtime)步骤2获取格式化的时间你可以根据需求选取各种格式,但是最简单的获取可读的时间模式的函数是asctime():>>> import time
>>> localtime = time.asctime( time.localtime(time.time()) )
>>> print("localtime:", localtime)
步骤3格式化日期>>> import time
#格式化成2016-03-20 11:45:39形式>>> print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()))
#格式化成Sat Mar 28 22:24:24 2016形式
>>> print(time.strftime("%a %b %d %H:%M:%S %Y",time.localtime()))
#将格式字符串转换为时间戳>>> a = "Sat Mar 28 22:24:24 2016"
>>>mytime=time.mktime(time.strptime(a,"%a %b %d %H:%M:%S%Y"))
将指定的时间格式转化出来的时间写入到文件中(列为记分点)
>>>f1 = open("/home/hcna-ai/exam6/result1.txt","w")
>>>f1.write(str(mytime))
>>>f1.close()步骤4获取某月日历Calendar模块有很广泛的方法用来处理年历和月历,例如打印某月的月历:>>> import calendar
>>> cal = calendar.month(2016, 1)
>>> print("以下输出2016年1月份的日历:")
>>> print(cal)
以下是正则表达式实验
步骤6 re.match函数re.match尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。
函数语法:
re.match(pattern, string, flags=0)
实例:
>>> import re
>>>print(re.match('www', 'www.runoob.com').span()) #在起始位置匹配
>>>print(re.match('com', 'www.runoob.com')) #不在起始位置匹配
None
步骤2re.search方法
re.search扫描整个字符串并返回第一个成功的匹配。
函数语法:
re.search(pattern,string, flags=0)
实例:
>>> import re
>>> line ="Cats are smarter than dogs"
>>>searchObj = re.search( r'(.*) are (.*?) .*', line, re.M|re.I)
>>> if searchObj:
>>>print("searchObj.group(): ", searchObj.group())
>>>print("searchObj.group(1): ", searchObj.group(1))
>>>print("searchObj.group(2): ", searchObj.group(2))
>>>f2 =open("/home/hcna-ai/exam6/result2.txt","w")
>>>f2.write(searchObj.group()+"n")
>>>f2.write(searchObj.group(1)+"n")
>>>f2.write(searchObj.group(2)+"n")
>>>f2.close()
>>> else:
>>>print("Nothing found!!" )
以上实例执行结果如下:
searchObj.group() :Cats are smarter than dogs
searchObj.group(1) :Cats
searchObj.group(2) :smarter
步骤3re.match与re.search的区别
re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配。
>>> import re
>>> line ="Cats are smarter than dogs"
>>>matchObj = re.match( r'dogs', line, re.M|re.I)
>>> if matchObj:
>>> print("match --> matchObj.group() :", matchObj.group())
>>> else:
>>> print("No match!!")
>>>matchObj = re.search( r'dogs', line, re.M|re.I)
>>> if matchObj:
>>> print("search --> matchObj.group() :", matchObj.group())
>>> else:
>>> print("No match!!")
以上实例运行结果如下:
No match!!
search -->matchObj.group() : dogs
步骤4检索和替换
Python的re模块提供了re.sub用于替换字符串中的匹配项。语法:
re.sub(pattern,repl, string, count=0, flags=0)
>>> import re
>>> phone ="2004-959-559" #这是一个国外电话号码
#删除字符串中的Python注释
>>> num =re.sub(r'#.*$', "", phone)
>>>print("pyhone: ", num)
#删除非数字(-)的字符串
>>> num =re.sub(r'D', "", phone)
>>>print("pyhone :", num)
>>>f3 = open("/home/hcna-ai/exam6/result3.txt","w")
>>>f3.write(str(num))
>>>f3.close()
步骤5re.compile函数
compile函数用于编译正则表达式,生成一个正则表达式(Pattern)对象,供match()和search()这两个函数使用。 语法格式为:
re.compile(pattern[,flags])
>>>import re
>>> pattern= re.compile(r'd+') #用于匹配至少一个数字
>>> m =pattern.match('one12twothree34four') #查找头部,没有匹配
>>>print(m)
None
>>> m =pattern.match('one12twothree34four', 2, 10) #从'e'的位置开始匹配,没有匹配
>>>print(m)
None
>>> m =pattern.match('one12twothree34four', 3, 10) #从'1'的位置开始匹配,正好匹配
>>>print(m) #返回一个Match对象
>>>m.group(0) #可省略0
'12'
>>>m.start(0) #可省略0
3
>>>m.end(0) #可省略0
5
>>>m.span(0) #可省略0
(3, 5)
步骤6findall
在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。
注意:match和search是匹配一次findall匹配所有。
语法格式为:
findall(string[,pos[, endpos]])
>>> import re
>>> pattern= re.compile(r'd+') #查找数字
>>> result1= pattern.findall('runoob 123 google 456')
>>> result2= pattern.findall('run88oob123google456', 0, 10)
>>>print(result1)
>>>print(result2)
>>>f4 =open("/home/hcna-ai/exam6/result4.txt","w")
>>>f4.write(str(result1)+'n')
>>>f4.write(str(result2))
>>>f4.close()
步骤7re.finditer
和findall类似,在字符串中找到正则表达式所匹配的所有子串,并把它们作为一个迭代器返回。
re.finditer(pattern,string, flags=0)
>>> import re
>>> it =re.finditer(r"d+","12a32bc43jf3")
>>> for match in it:
>>> print(match.group())
步骤8re.split
split方法按照能够匹配的子串将字符串分割后返回列表,它的使用形式如下:
re.split(pattern,string[, maxsplit=0, flags=0])
实例:
>>>import re
>>>re.split('W+', 'runoob, runoob, runoob.')
['runoob', 'runoob','runoob', '']
>>>re.split('(W+)', ' runoob, runoob, runoob.')
['', ' ', 'runoob',', ', 'runoob', ', ', 'runoob', '.', '']
>>>re.split('W+', ' runoob, runoob, runoob.', 1)
['', 'runoob,runoob, runoob.']
>>>re.split('a*', 'hello world') #对于找不到匹配的字符串而言,split不会对其作分割
['hello world']
最后
以上就是羞涩棒棒糖为你收集整理的python表达式实验_python实验之日期和正则表达式的全部内容,希望文章能够帮你解决python表达式实验_python实验之日期和正则表达式所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复