【问题标题】:Remove string from left and right side of date using python and update as new string使用python从日期的左侧和右侧删除字符串并更新为新字符串
【发布时间】:2021-07-14 07:57:01
【问题描述】:
string = "I went to market on October 29,2017I on London"
12-7-2021mma  --->12-7-2021
kk12/7/2021   ---> 12-7-2021
yy12/9/2021kko  ---> 12/9/2021

是否有任何解决方案可以通过从 2017 年 10 月 29 日删除“我”来获得“我于 2017 年 10 月 29 日在伦敦上市”I

像上面这样的例子还有很多

【问题讨论】:

    标签: python python-3.x string


    【解决方案1】:

    只要您要从严格格式的句子中提取日期(例如“12-7-2021”),您就可以使用正则表达式:

    import re
    
    ss = ['12-7-2021mma', 'kk12/7/2021', 'yy12/9/2021kko']
    
    for ss1 in ss:
        ss_date = re.match(r'[^0-9]*(\d\d?[-/]\d\d?[-/]\d{4})[^0-9]*', ss1)
    
    
        if ss_date is not None:
            print(ss_date.group(1))
    

    你得到:

    12-7-2021
    12/7/2021
    12/9/2021
    

    【讨论】:

    • 感谢您的支持
    • 当然,没问题。如果你喜欢这个答案,你也可以投票。
    【解决方案2】:

    尝试将re.substr.join 与列表理解一起使用:

    import re
    string = "I went to market on October 29,2017I on London"
    print(' '.join([re.sub('[^\d+,/-]+', '', i) or i for i in string.split()]))
    

    输出:

    I went to market on October 29,2017 on London
    

    【讨论】:

    • 我有这样的案例句:“FHYSJ j lOctober 20,2017I Initial Evaluation i. Causing him 03-10-2020l”.. 但是这个输出显示:“FHYSJ j lOctober 20,2017 Initial评估 i. 导致他 03102020".. 但我必须从 "lOctober 20,2017" 中删除 "l" 并且不应该从 03-10-2020 中删除 "-"
    • @Ajay 很抱歉我编辑了我的答案,如果它有效,应该值得一票:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-05
    • 2016-04-15
    • 1970-01-01
    • 2021-11-29
    • 1970-01-01
    • 2016-09-25
    • 2010-10-10
    相关资源
    最近更新 更多