Products
GG网络技术分享 2025-03-18 16:14 0
求一个正则表达式匹配日期类型
日期格式为 \"yyyy-MM-dd\",考虑到要符合多种格式,不受0的影响例如
\"2018-1-1\"
\"2018-01-01\"
\"2018-001-002\" //前面可以添加任意个0
可以忽略平年和闰年的影响,求大神给一个
^\\d{4}-0*((1|3|5|7|8|10|12)-0*([1-9]|[1-2]\\d|3[0-1])|(4|6|9|11)-0*([1-9]|[1-2]\\d|30)|2-0*([1-9]|[1-2]\\d))$
从你的问题描述来看,我感觉你对正则表达式的理解有些偏差。我来讲一下正则表达式是干什么的,如果你的理解本来是对的,那很好;如果不是,则可以学习一下。
这是正则表达式的英文和中文Wikepedia的地址。
https://en.wikipedia.org/wiki/Regular_expression
https://zh.wikipedia.org/wiki/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F
它们英文和中文的定义如下:
A regular expression(shortened as regex or regexp;[1]also referred to as rational expression[2][3]) is a sequence of characters that define a search pattern. Usually such patterns are used by string-searching algorithms for "find" or "find and replace" operations on strings, or for input validation. It is a technique developed in theoretical computer science and formal language theory.
正则表达式(英語:Regular Expression,常简写为regex、regexp或RE),又称正規表示式、正規表示法、規則運算式、常規表示法,是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器裡,正則表达式通常被用来检索、替换那些符合某个模式的文本。
所以,正则表达式是一种定义搜索模式的字符串,它用在字符搜索算法中,来查找/查找并替换字符串。
所以,使用正则表达式的前提是,你已经有一个字符串,然后你希望通过正则来找到其中符合某种条件的字符串,或是找到后替换它们。
而你问题描述中的【如何用正则表达式表达2020.10.1的日期】,则与正则的使用逻辑不符。正确的说法应该是,你有一些字符串,如何找到其中yyyy-mm-d样式的日期。
PS:其实在理清正则的思路以后,你的问题还有其它很多细节可以讨论。比如
这些都是随便想起来的点,你可以多想想。
Demand feedback