中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中如何使用正則表達式匹配日期與時間

發布時間:2021-08-18 10:03:43 來源:億速云 閱讀:2248 作者:小新 欄目:開發技術

這篇文章給大家分享的是有關Python中如何使用正則表達式匹配日期與時間的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

示例

#!/usr/bin/env python
# -*- coding: utf-8 -*-
__author__ = 'Randy'
import re
from datetime import datetime
test_date = '他的生日是2016-12-12 14:34,是個可愛的小寶貝.二寶的生日是2016-12-21 11:34,好可愛的.'
test_datetime = '他的生日是2016-12-12 14:34,是個可愛的小寶貝.二寶的生日是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
## 有效時間
# 如這樣的日期2016-12-35也可以匹配到.測試如下.
test_err_date = '如這樣的日期2016-12-35也可以匹配到.測試如下.'
print re.search(r"(\d{4}-\d{1,2}-\d{1,2})",test_err_date).group(0)
# 2016-12-35
# 可以加個判斷
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("錯誤是日期格式或日期,格式是年-月-日")
    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= """
   平安夜圣誕節2016-12-24的日子與去年2015/12/24的是有不同哦.
   """
# 根據正則查找所有日期并返回
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正則表達式中原生字符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 表示原生字符串

與大多數編程語言相同,正則表達式里使用"\"作為轉義字符,這就可能造成反斜杠困擾。假如你需要匹配文本中的字符"\",那么使用編程語言表示的正則表達式里將需要4個反斜杠"\\":前兩個和后兩個分別用于在編程語言里轉義成反斜杠,轉換成兩個反斜杠后再在正則表達式里轉義成一個反斜杠。

Python里的原生字符串很好地解決了這個問題,有了原生字符串,你再也不用擔心是不是漏寫了反斜杠,寫出來的表達式也更直觀。

>>> ret = re.match(r"c:\\a",mm).group()
>>> print(ret)
c:\a

感謝各位的閱讀!關于“Python中如何使用正則表達式匹配日期與時間”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

资中县| 香格里拉县| 深州市| 栖霞市| 杭锦旗| 阜平县| 师宗县| 仁寿县| 宣恩县| 二连浩特市| 阿合奇县| 四川省| 清水河县| 石嘴山市| 虞城县| 广南县| 增城市| 宜黄县| 云龙县| 怀来县| 天峻县| 安泽县| 富民县| 武鸣县| 延庆县| 平塘县| 安国市| 齐齐哈尔市| 红原县| 理塘县| 昆明市| 莲花县| 启东市| 昌江| 大港区| 河北区| 策勒县| 宜黄县| 新巴尔虎左旗| 原平市| 嘉鱼县|