這篇文章給大家分享的是有關(guān)Python中如何使用正則表達(dá)式匹配日期與時(shí)間的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。
創(chuàng)新互聯(lián)公司長期為超過千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為江達(dá)企業(yè)提供專業(yè)的網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站設(shè)計(jì),江達(dá)網(wǎng)站改版等技術(shù)服務(wù)。擁有十年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。示例
#!/usr/bin/env python # -*- coding: utf-8 -*- __author__ = 'Randy' import re from datetime import datetime test_date = '他的生日是2016-12-12 14:34,是個(gè)可愛的小寶貝.二寶的生日是2016-12-21 11:34,好可愛的.' test_datetime = '他的生日是2016-12-12 14:34,是個(gè)可愛的小寶貝.二寶的生日是2016-12-21 11:34,好可愛的.' # date mat = re.search(r"(\d{4}-\d{1,2}-\d{1,2})",test_date) print mat.groups() # ('2016-12-12',) print mat.group(0) # 2016-12-12 date_all = re.findall(r"(\d{4}-\d{1,2}-\d{1,2})",test_date) for item in date_all: print item # 2016-12-12 # 2016-12-21 # datetime mat = re.search(r"(\d{4}-\d{1,2}-\d{1,2}\s\d{1,2}:\d{1,2})",test_datetime) print mat.groups() # ('2016-12-12 14:34',) print mat.group(0) # 2016-12-12 14:34 date_all = re.findall(r"(\d{4}-\d{1,2}-\d{1,2}\s\d{1,2}:\d{1,2})",test_datetime) for item in date_all: print item # 2016-12-12 14:34 # 2016-12-21 11:34 ## 有效時(shí)間 # 如這樣的日期2016-12-35也可以匹配到.測(cè)試如下. test_err_date = '如這樣的日期2016-12-35也可以匹配到.測(cè)試如下.' print re.search(r"(\d{4}-\d{1,2}-\d{1,2})",test_err_date).group(0) # 2016-12-35 # 可以加個(gè)判斷 def validate(date_text): try: if date_text != datetime.strptime(date_text, "%Y-%m-%d").strftime('%Y-%m-%d'): raise ValueError return True except ValueError: # raise ValueError("錯(cuò)誤是日期格式或日期,格式是年-月-日") return False print validate(re.search(r"(\d{4}-\d{1,2}-\d{1,2})",test_err_date).group(0)) # false # 其他格式匹配. 如2016-12-24與2016/12/24的日期格式. date_reg_exp = re.compile('\d{4}[-/]\d{2}[-/]\d{2}') test_str= """ 平安夜圣誕節(jié)2016-12-24的日子與去年2015/12/24的是有不同哦. """ # 根據(jù)正則查找所有日期并返回 matches_list=date_reg_exp.findall(test_str) # 列出并打印匹配的日期 for match in matches_list: print match # 2016-12-24 # 2015/12/24
https://www.pythonxyz.com/10025-python-regex-match-date-time.xyz
ps:下面看下python正則表達(dá)式中原生字符r的作用
r的作用
>>> mm = "c:\\a\\b\\c" >>> mm 'c:\\a\\b\\c' >>> print(mm) c:\a\b\c >>> re.match("c:\\\\",mm).group() 'c:\\' >>> ret = re.match("c:\\\\",mm).group() >>> print(ret) c:\ >>> ret = re.match("c:\\\\a",mm).group() >>> print(ret) c:\a >>> ret = re.match(r"c:\\a",mm).group() >>> print(ret) c:\a >>> ret = re.match(r"c:\a",mm).group() Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'NoneType' object has no attribute 'group' >>>
說明
Python中字符串前面加上 r 表示原生字符串
與大多數(shù)編程語言相同,正則表達(dá)式里使用"\"作為轉(zhuǎn)義字符,這就可能造成反斜杠困擾。假如你需要匹配文本中的字符"\",那么使用編程語言表示的正則表達(dá)式里將需要4個(gè)反斜杠"\\":前兩個(gè)和后兩個(gè)分別用于在編程語言里轉(zhuǎn)義成反斜杠,轉(zhuǎn)換成兩個(gè)反斜杠后再在正則表達(dá)式里轉(zhuǎn)義成一個(gè)反斜杠。
Python里的原生字符串很好地解決了這個(gè)問題,有了原生字符串,你再也不用擔(dān)心是不是漏寫了反斜杠,寫出來的表達(dá)式也更直觀。
>>> ret = re.match(r"c:\\a",mm).group() >>> print(ret) c:\a
感謝各位的閱讀!關(guān)于“Python中如何使用正則表達(dá)式匹配日期與時(shí)間”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
網(wǎng)頁名稱:Python中如何使用正則表達(dá)式匹配日期與時(shí)間-創(chuàng)新互聯(lián)
本文來源:http://bm7419.com/article14/ddhhge.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司、網(wǎng)站內(nèi)鏈、定制開發(fā)、營銷型網(wǎng)站建設(shè)、小程序開發(fā)、網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容