2017-01-26 4 views
0

正規表現の文字列や、この文字列から日付と時刻を変数に取得する方法は誰にも分かりますか?文字列の位置が変わる可能性があるため、行と文字は機能しません。これは私の能力を少し超えています、それはできますか?Python - 文字列から日付を検索

おかげ

Dear Customer, 

(Call Transferred) Start Time & Date: 00:05 Monday 6th February 2017    
Completion Time & Date: 06:00 Monday 6th February 2017     

Details of Work: 
+2

「DateTime」 –

+0

正規表現を使用することをお勧めします。何を試しましたか? – asongtoruin

答えて

2

これは、あなたが提供してきた例の報告で動作します。それは両方の開始と完了日付を返し、など '目'、 'RD'、

import re 

import dateutil.parser 

REPORT = \ 
"""Dear Customer, 

(Call Transferred) Start Time & Date: 00:05 Monday 6th February 2017 
Completion Time & Date: 06:00 Monday 6th February 2017 

Details of Work:""" 


def parse_report(data): 
    dates = [] 

    for pattern in ['(?<=Start Time & Date:).*', '(?<=Completion Time & Date:).*']: 
     date = dateutil.parser.parse(re.search(pattern, data).group(0)) 
     dates.append(date) 

    return dates 


if __name__ == '__main__': 
    start, completion = parse_report(REPORT) 
    print('Started: {}, Completed: {}'.format(start, completion)) 

出力のような日の-月サフィックスを処理する必要があり

Started: 2017-02-06 00:05:00, Completed: 2017-02-06 06:00:00 

編集

コードを簡略化する代わりにdateutil.parserを使用するように更新されました(提案のためのasongtoruinのおかげで)。

+1

'filter_day_of_month_suffix()'の必要性を取り除くために 'datetime.strptime()'ではなく 'dateutil.parser.parse()'を使うことができますか? – asongtoruin

+0

@ason​​gtoruinありがとう、そのパッケージを知らなかった。 – Tagc

+0

ありがとうございました。 – AlexW

関連する問題