from dateutil.parser import parse
def convert_to_ddmmyy(date_string):
    try:
        date = parse(date_string)
        formatted_date = date.strftime("%d%m%y")
        return formatted_date
    except ValueError:
        return "Invalid date format"
# Example usage
date_string = "13.75"
converted_date = convert_to_ddmmyy(date_string)
print(converted_date)

这个可以打印130623.

我希望将此打印为无效或类似的内容,我可以做哪些更改? 它必须使用解析器,因为我正在处理各种日期格式,但我需要排除这种格式.

推荐答案

使用正则表达式识别无效的格式:模式\d\d\.\d\d拒绝格式'xx.xx'中的任何字符串,其中x是十进制数字.这涉及到你的具体情况.第二个表达式处理一系列格式,如下所述.

import re
from dateutil.parser import parse

def convert_to_ddmmyy(date_string):
    # if re.match(r"\d\d\.\d\d",date_string): # rejects basic pattern xx.xx
    if re.fullmatch(r"\d*\.\d*",date_string): # rejects wider range of similar patterns
       return "Invalid date format"
    try:
        date = parse(date_string)
        formatted_date = date.strftime("%d%m%y")
        return formatted_date
    except ValueError:
        return "Invalid date format"
# Example usage
date_string = "13.75"
converted_date = convert_to_ddmmyy(date_string)
print(converted_date)

赠送

Invalid date format

以下是一个解释.match在字符串中查找模式并返回True或False.\d表示一个数字.\用于将其设置为控制值,而不是查找字母d;需要\.来查找停靠点,因为它在regex中以其他方式使用(用于接受任何内容).*表示没有或更多以前的.因此,第二个模式查找无数字或任意数字、停止、无数字或任意数字.但是,match会拒绝2023.12.12(这可能是一个日期),因为它看到模式2023.1212.12;但是fullmatch会判断整个字符串是否匹配该模式,因此将接受此字符串.希望这能对你有所帮助.正则表达式在判断和更改字符串方面有很多用处.

Python相关问答推荐

将行从一个DF添加到另一个DF

Python无法在已导入的目录中看到新模块

如果索引不存在,pandas系列将通过索引获取值,并填充值

添加包含中具有任何值的其他列的计数的列

使用scipy. optimate.least_squares()用可变数量的参数匹配两条曲线

将DF中的名称与另一DF拆分并匹配并返回匹配的公司

根据另一列中的nan重置值后重新加权Pandas列

Gekko:Spring-Mass系统的参数识别

如何记录脚本输出

avxspan与pandas period_range

无法使用DBFS File API路径附加到CSV In Datricks(OSError Errno 95操作不支持)

如何调整QscrollArea以正确显示内部正在变化的Qgridlayout?

海上重叠直方图

有没有一种ONE—LINER的方法给一个框架的每一行一个由整数和字符串组成的唯一id?

如何合并两个列表,并获得每个索引值最高的列表名称?

如何从列表框中 Select 而不出错?

将标签移动到matplotlib饼图中楔形块的开始处

在方法中设置属性值时,如何处理语句不可达[Unreacable]";的问题?

Python将一个列值分割成多个列,并保持其余列相同

仅使用预先计算的排序获取排序元素