簡體   English   中英

使用正則表達式讀取Python中的文本字段

[英]read a text field in Python using regular expressions

我有文本文件,例如

FILED AS OF DATE:       20090209
DATE AS OF CHANGE:      20090209

我需要使用FILED AS OF DATE:查找職位FILED AS OF DATE:並閱讀日期。 我知道如何使用python字符串做到這一點。 但是使用正則表達式似乎更酷:)

順便說一句,如何解析日期?

謝謝!

#!/usr/bin/env python
import datetime, fileinput, re

for line in fileinput.input():
    if 'FILED AS OF DATE' in line:
       line = line.rstrip()
       dt = datetime.datetime.strptime(line, 'FILED AS OF DATE:       %Y%m%d')

       # or with regex
       date_str, = re.findall(r'\d+', line)
       dt = datetime.datetime.strptime(date_str, '%Y%m%d')

       print dt.date()

例:

$ ./finddate.py input.txt

輸出:

2009-02-09

這是您需要的嗎?

/FILED.*([0-9]{4})([0-9]{2})([0-9]{2})$/

然后搜索FILED,然后將所有內容解析為3組。

您確實不需要為此使用RE

關於解析日期,您可以使用datetime.strptime(date_string,format) 然后,可以根據需要將其從datetime.datetime轉換為datetime.date

或者使用python-dateutil parse()函數 ,當您的date(time)值的格式不固定時,這非常方便。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM