我想确定字符串是否包含格式为MM / DD / YY的日期。它可以是任何日期,只要它采用该格式。不知道我怎么表示这个。
for line in f:
if date in line:
print(line)
数据:
>Unneeded text<
Account: 5
03/29/18 7,885,216.93- 208,557,351.68 200,672,134.75 2.18 12,151.81
03/30/18 7,885,216.93- 208,557,351.68 200,672,134.75 2.18 12,151.81
03/31/18 7,885,216.93- 208,557,351.68 200,672,134.75 2.18 12,151.81
04/01/18 7,885,216.93- 208,557,351.68 200,672,134.75 2.18 12,151.81
04/02/18 10,487,227.15 202,979,865.76 213,467,092.91 2.17 12,867.30
04/03/18 26,149,970.46- 209,222,696.72 183,072,726.26 2.18 11,086.08
04/04/18 13,606,232.52- 217,761,977.25 204,155,744.73 2.18 12,362.77
04/05/18 29,929,731.83- 228,565,335.73 198,635,603.90 2.19 12,083.68
04/06/18 32,832,695.61- 235,134,802.88 202,302,107.27 2.19 12,306.70
04/07/18 32,832,695.61- 235,134,802.88 202,302,107.27 2.19 12,306.70
04/08/18 32,832,695.61- 235,134,802.88 202,302,107.27 2.19 12,306.70
04/09/18 31,908,656.83- 232,249,566.41 200,340,909.58 2.19 12,187.38
04/10/18 20,367,782.42- 229,302,450.95 208,934,668.53 2.19 12,710.17
>Unneeded text<
Account: 6
03/29/18 7,885,216.93- 208,557,351.68 200,672,134.75 2.18 12,151.81
这是一个账户的数据。我需要迭代大约30个帐户。问题是每个数据部分都由一些不必要的文本分隔。
我当前的脚本会抓取帐号#以及昨天的数据:
for line in f:
if "ACCOUNT: " + Account in line:
TAccount = Account
for line in f:
if rdate.strftime("%m/%d/%y") in line:
print(line)
我希望有一种方法可以找到任何以日期格式为MM / DD / YY开头的字符串
答案 0 :(得分:3)
您可以使用此正则表达式识别此型号MM / DD / YYYY:
date_regex = '(0[1-9]|1[12])\/(0[1-9]|1[0-9]|2[0-9]|3[0-1])\/(\d{4})'
你可以将它用于MM / DD / YY:
date_regex = '(0[1-9]|1[12])\/(0[1-9]|1[0-9]|2[0-9]|3[0-1])\/(\d{2})'
答案 1 :(得分:1)
使用正则表达式
import re
s = "dssdfsdfsdfsdf 10/01/18 ssdfsfsf dsfsdfsdfsd"
print(re.findall("\d{2}/\d{2}/\d{2}", s))
<强>输出:强>
['10/01/18']
在你的情况下:
for line in f:
date = re.search("\d{2}/\d{2}/\d{2}", line):
if date:
print(line, date.group())
答案 2 :(得分:1)
您可以使用re
模块查找数据,并考虑使用datetime
模块验证日期是否有效
for line in f:
match=re.search(r'(\d+/\d+/\d+)',line)
_date = match.group(1)
try:
datetime.datetime.strptime(_date,"%m/%d/%y")
#To DO
except:
pass #not valid date
答案 3 :(得分:1)
这是我从字符串中提取日期元素的方法:
month=int(f[0:2])
day=int(f[3:5])
Year=int(f[6:8])
检查这些是否提供有效日期可能是您问题的解决方案。