2017-01-26 1 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을 사용하도록 업데이트되었습니다 (제안에 대한 애송이 인 덕분에).

+1

'datetime.strptime()'대신'dateutil.parser.parse()'를 사용하여'filter_day_of_month_suffix()'의 필요성을 제거 할 수 있습니까? – asongtoruin

+0

@asongtoruin 감사합니다. 그 패키지를 알지 못했습니다. – Tagc

+0

감사합니다. – AlexW