#!/usr/bin python
# -*- coding:utf-8 -*-

import re

def get_time_field_by_re(message):
    timesre = [
        '\d+\-\d+\-\d+[至到\～\~]\d+\-\d+\-\d+',
        '\d+[\/]\d+[\-到至\～\~]\d+[\/]\d+[号日]',
        '\d+月\d+日[\-到至\～\~]\d+月\d+日',
        '\d+[\.\,\，月\/]\d+[\-到\～至\~]\d+[\.\,\，月\/]\d+',
        '\d+月\d+[日号號][\-至到\～\~]\d+[日号號]',
        '\d+月\d+[\-至到\～\~]\d+',
        '\d+[到\-\～至\~]\d+[日号]',
        '\d+[号日][到至\-\～\~]\d+[号日]',
        '\d+[\-\~\～到至]\d+',

        '\d+\.\d+\.\d+[号日]',
        '\d+\.\d+\.\d+三.',

        '\d+\.\d+[号日]',  # 这块误杀了 1.8米床 撒的，都出错了 这里有歧义：（1）23.24号（2）7.14号（3）1.8米不属于日期类别
            # '\d+\、\d+号',  # 新添加的1、2号 具体场景应该指天数
        # '\d[1-31]号$',  # 这个是 100号 出错，地址里面也有 100号，不是日期
        # '\d[一二三四五]号',

        '\d+[\,\，\,\、]\d+[号日]',  # \,\，\,\、表示两天  \.可能有歧义
        '\d+[和]\d+两.',

        '(今天|明天|后天)',
        '\d+[号日]'   # 1号 12号 30号 234号 91011号 111213号 97号 32号

    ]

    timesre_backup = [
        '\d+\-\d+\-\d+[至到\～\~]\d+\-\d+\-\d+',
        '\d+[\/]\d+[\-到至\～\~]\d+[\/]\d+[号日]',
        '\d+月\d+日[\-到至\～\~]\d+月\d+日',
        '\d+[\.\,\，月\/]\d+[\-到\～至\~]\d+[\.\,\，月\/]\d+',
        '\d+月\d+[日号號][\-至到\～\~]\d+[日号號]',
        '\d+月\d+[\-至到\～\~]\d+',
        '\d+[到\-\～至\~]\d+[日号]',
        '\d+[号日][到至\-\～\~]\d+[号日]',
        '\d+\、\d+号',  # 新添加的1、2号
        '\d+\.\d+\.\d+[号日]',
        '\d+[\-]d+',
        '\d+\-\d+',
        '\d+\.\d+号',  # 这块误杀了 1.8米床 撒的，都出错了
        '\d[1-31]号$',  # 这个是 100号 出错，地址里面也有 100号，不是日期
        # '\d[一二三四五]号',
        '\d+\.\d+\.\d+三.',
        '\d+[和]\d+两.',
        '\d+[\.\,\，\,]\d[号日]',
        '(今天|明天|后天)',
        '\d+[号日]',
        # '\d+\-d+[号日]',
        # '\d+\.\d+[号日]',

    ]

    times = []
    re0 = '\d+\-\d+\-\d+[至到\～\~\-]\d+\-\d+\-\d+'
    re01 = '\d+[\/]\d+[至到\～\~\-]\d+[\/]\d+[号日]'
    re1 = '\d+月\d+日[至到\～\~\-]\d+月\d+日'
    re2 = '\d+[\.\,\，月\/]\d+[至到\～\~\-]\d+[\.\,\，月\/]\d+'
    re3 = '\d+月\d+[日号號][至到\～\~\-]\d+[日号號]'
    re30 = '\d+月\d+[至到\～\~\-]\d+'
    re4 = '\d+[至到\～\~\-]\d+[日号]'
    re5 = '\d+[号日][到至\-\～\~]\d+[号日]'
    re51 = '\d+[\-\~\～到至]\d+',

    re6 = '\d+\.\d+\.\d+[号日]'
    # re7 = '\d{3,6}号'
    re8 = '\d+\.\d+\.\d+三.'

    re81 = '\d+\.\d+[号日]',
    re82 = '\d+[\,\，\,\、]\d+[号日]',

    re9 = '\d+[和]\d+两.'
    # re10 = '\d+[\.\,\，\,]\d+[号日]'
    # re11 = '\d+\.\d+'
    '(今天|明天|后天)',
    re12 = '\d+[号日]'


    try:


        for timere in timesre:
            reList = re.findall(timere,message,re.S)
            if reList:
                print('--',timere)
                # print(type(reList),reList)
                times.extend(reList)
                for reItem in reList:
                    message = message.replace(reItem,'')

        # for timere in timesre:
        #     matches = re.findall(timere, message, re.S)
        #     print(matches)
        #     exit(0)
        #     if matches and len(matches) > 0:
        #         times.extend(matches)
        #         break
    except Exception as err:
        print(err)
    return times

if __name__ == '__main__':
    # testList = [
    #     # '过来商务，想要预订09月27日-09月30日的房，共3天，请问这个时间方便接待吗?',
    #     # '过来旅游，想要预订4号到6号的房，共2天，请问这个时间方便接待吗?',
    #     '过来商务，想要预订09月27日-09月30日的房，共3天，请问09月13日-09月15日这个时间3号方便接待吗?',
    #     # 'landlord:09月27日-09月30日这套1号被订，正好空2，3号两天，4～7号被订了09月21日-09月23日',
    #     # '那我先定234号的和23.24.25号',
    #     # '那我先定11.10-11.14的'
    # ]
    testList = [
        # '过来商务，想要预订09月27日-09月30日的房，共3天，请问这个时间方便接待吗?',
        # '过来旅游，想要预订4号到6号的房，共2天，请问这个时间方便接待吗?',
        # '过来商务，想要预订09月27日-09月30日的房，共3天，请问这个时间方便接待吗?',
        # 'landlord:09月27日-09月30日这套1号被订，正好空2，3号两天，4～7号被订了09月21日-09月23日',
        #     '那我先定234号的和23.24.25号',
        # '那我先定11.10-11.14的',
        # '我是按照你10.16到10，18号退算的价格',

        # '5月13号到16号',
        # '请问7月18日至20日房间有租期吗5月13号到16号',
        # '打算是从23-28日',
        #     '你好 7.19有一天空着的 之后要7.22开始才有',
        # 'tenant:您好，15号~20号的房源有吗？3人入住',
        # '不好意思 我忘了明天有人还在住 只有后天了',
        # '要到9号才有房间呢',
        # 'tenant:23-24周末给定了？',
        # 'landlord:20-22可以租 ',
        # 'landlord:20-22可以1-3号租的4号-5号 ',
        'landlord:23.24号没有房间了',
        '你看的这间1、2号已经被预定了的',
        #     '你看的这间100号已经30号被预定了的',
        # 'tenant:黄先生，你好！我们的日程是11月22日到11月28日，我现在去拍哦！看到请回复！[咧嘴笑]'
    ]

    for line in testList:
        print(line)
        reResult = get_time_field_by_re(line)
        print(reResult)
        print('-------------------')

