#!/usr/bin/env python
#-*- coding: utf-8 -*-
__author__ = '
randy
'import
refrom 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-\d-\d)
",test_date)
mat.groups()
#('2016-12-12',)
mat.group(0)
#2016-12-12
date_all = re.findall(r"
(\d-\d-\d)
",test_date)
for item in
date_all:
item
#2016-12-12
#2016-12-21
#datetime
mat = re.search(r"
(\d-\d-\d\s\d:\d)
",test_datetime)
mat.groups()
#('2016-12-12 14:34',)
mat.group(0)
#2016-12-12 14:34
date_all = re.findall(r"
(\d-\d-\d\s\d:\d)
",test_datetime)
for item in
date_all:
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-\d-\d)
",test_err_date).group(0)
#2016-12-35
#可以加個判斷
defvalidate(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-\d-\d)
",test_err_date).group(0))
#false
#其他格式匹配. 如2016-12-24與2016/12/24的日期格式.
date_reg_exp = re.compile('
\d[-/]\d[-/]\d')
test_str= """
平安夜聖誕節2016-12-24的日子與去年2015/12/24的是有不同哦.
"""#
根據正則查詢所有日期並返回
matches_list=date_reg_exp.findall(test_str)
#列出並列印匹配的日期
for match in
matches_list:
match
#2016-12-24
#2015/12/24
Python 正規表示式匹配
請實現乙個函式用來匹配包括 和 的正規表示式。模式中的字元 表示任意乙個字元,而 表示它前面的字元可以出現任意次 包含0次 在本題中,匹配是指字串的所有字元匹配整個模式。例如,字串 aaa 與模式 a.a 和 ab ac a 匹配,但是與 aa.a 和 ab a 均不匹配 coding utf 8 ...
正規表示式匹配 python
coding utf 8 題目 請實現乙個函式用來匹配包括 和 的正規表示式。模式中的字元 表示任意乙個字元 不包括空字元!而 表示它前面的字元可以出現任意次 包含0次 在本題中,匹配是指字串的所有字元匹配整個模式。例如,字串 aaa 與模式 a.a 和 ab ac a 匹配,但是與 aa.a 和 ...
正規表示式 匹配
字串 void abtr quint32 ab 表示乙個正規表示式 template class bidirectionaliterator class allocator std allocator sub match bidirectionaliterator class match resul...