gpt4 book ai didi

c# - 匹配 M/YYYY、MM/YYYY、M/YY 或 MM/YY 格式但不匹配 MM/DD/YYYY 的正则表达式

转载 作者:行者123 更新时间:2023-11-30 14:26:55 25 4
gpt4 key购买 nike

好吧,我已经和这个战斗了足够长的时间。我有一个正则表达式

^(1[0-2]|0[1-9]|\d)\/(20\d{2}|19\d{2}|0(?!0)\d|[1-9]\d)

这将匹配 8/15、08/15、8/2015、08/2015 所有我需要的。到目前为止,一切都很好。但我不需要让它匹配 08/01/2015,但我在 08/01 获得了部分匹配。如何忽略 08/01/2015?

最佳答案

DateTime.ParseExact 是一种更具可读性和可维护性的方式来解决您的问题:https://msdn.microsoft.com/en-us/library/332de853(v=vs.110).aspx

如果我是你的同事,我会讨厌阅读这个丑陋的正则表达式,因为相同的概念可以用指定的库类如此优雅地表达。

实际上,一个更好的主意是TryParseExact:https://msdn.microsoft.com/en-us/library/h9b85w22(v=vs.110).aspx

如您所见,有一个接受多种格式的重载,这正是您的情况,您可以传递 ["M/yyyy", "MM/yyyy, "M/yy", "MM/yy "].

这是一个与您的案例非常相似的代码示例:https://stackoverflow.com/a/18247797/326370

关于c# - 匹配 M/YYYY、MM/YYYY、M/YY 或 MM/YY 格式但不匹配 MM/DD/YYYY 的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34282165/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com