我是靠谱客的博主 羞涩棒棒糖,最近开发中收集的这篇文章主要介绍python表达式实验_python实验之日期和正则表达式,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

步骤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实验之日期和正则表达式所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部