Regex 匹配日期格式和URL的正则表达式

Regex 匹配日期格式和URL的正则表达式,regex,Regex,嗨,我想能够设置正则表达式,以允许像这样输入日期 1900年1月1日或1970年1月1日,我有以下内容,但不确定如何使其在最后需要4或2 ^([1-9]|0[1-9]|1[012])[- /.]([1-9]|0[1-9]|[12][0-9]|3[01])[- /.][0-9]{4}$ 另一个我想知道的是URL 这一个我不知道如何使它匹配正确的URL 感谢您要修改您的正则表达式,使其结尾为2或4位数字,您可以尝试以下操作: ^([1-9]|0[1-9]|1[012])[- /.]([1-9]|0

嗨,我想能够设置正则表达式,以允许像这样输入日期

1900年1月1日或1970年1月1日,我有以下内容,但不确定如何使其在最后需要4或2

^([1-9]|0[1-9]|1[012])[- /.]([1-9]|0[1-9]|[12][0-9]|3[01])[- /.][0-9]{4}$
另一个我想知道的是URL

这一个我不知道如何使它匹配正确的URL


感谢您

要修改您的正则表达式,使其结尾为2或4位数字,您可以尝试以下操作:

^([1-9]|0[1-9]|1[012])[- /.]([1-9]|0[1-9]|[12][0-9]|3[01])[- /.]([0-9]{4}|[0-9]{2})$
对于URL,您可以尝试(从):


或者看一看。

要修改正则表达式,使其结尾为2或4位数字,您可以尝试以下操作:

^([1-9]|0[1-9]|1[012])[- /.]([1-9]|0[1-9]|[12][0-9]|3[01])[- /.]([0-9]{4}|[0-9]{2})$
对于URL,您可以尝试(从):


或者看一下。

这应该与我们的两个四位数字匹配:

\d{2}(\d{2})?
您的完整正则表达式如下所示:

^([1-9]|0[1-9]|1[012])[- /.]([1-9]|0[1-9]|[12][0-9]|3[01])[- /.]\d{2}(\d{2})?$
URL很难测试。是一个有效的URL,因此它是有效的。我会在您的语言中寻找一些东西来测试这一点,或者做一个非常简单的测试(您必须根据您使用的正则表达式引擎来划分一些特殊字符):


这应该与我们的两个四位数字匹配:

\d{2}(\d{2})?
您的完整正则表达式如下所示:

^([1-9]|0[1-9]|1[012])[- /.]([1-9]|0[1-9]|[12][0-9]|3[01])[- /.]\d{2}(\d{2})?$
URL很难测试。是一个有效的URL,因此它是有效的。我会在您的语言中寻找一些东西来测试这一点,或者做一个非常简单的测试(您必须根据您使用的正则表达式引擎来划分一些特殊字符):

嗯,
([0-9]{4}|[0-9]{2})
对你来说还不够好吗?可能您可以添加一些检查,以确保四位数组中的前两位数是
19
20
,但这取决于您的需要

至于URL匹配的外观。他们中有很多人都有测试。

嗯,
([0-9]{4}|[0-9]{2})
对你来说不够好吗?可能您可以添加一些检查,以确保四位数组中的前两位数是
19
20
,但这取决于您的需要


至于URL匹配的外观。测试中有许多选项。

您可以在最后使用中的另一个选项来接受2或4(与您对其他日期部分使用“或”选项的方式相同)。或者,您可以要求最后一个位置有两位数字,然后在这之后有两位可选数字

除非需要捕获各个部分(日、月、年),否则应使用非捕获括号,如
(?:)
(这是.NET语法)

最后,您应该考虑使用此方法实现的验证类型。最好是强制执行格式,不要担心91/73/9004这样的坏表单,因为即使使用现有的格式,也可能会得到无效日期,如2011年2月31日。既然您可能需要执行进一步的验证,为什么不将正则表达式简化为类似于

^(?:\d{1,2}[-/.]){2}\d{2}(?:\d{2})?$


至于URL,stackoverflow中充斥着重复的问题。

您可以在最后使用另一个选项来接受2或4(与其他日期部分的“或”选项相同)。或者,您可以要求最后一个位置有两位数字,然后在这之后有两位可选数字

除非需要捕获各个部分(日、月、年),否则应使用非捕获括号,如
(?:)
(这是.NET语法)

最后,您应该考虑使用此方法实现的验证类型。最好是强制执行格式,不要担心91/73/9004这样的坏表单,因为即使使用现有的格式,也可能会得到无效日期,如2011年2月31日。既然您可能需要执行进一步的验证,为什么不将正则表达式简化为类似于

^(?:\d{1,2}[-/.]){2}\d{2}(?:\d{2})?$


至于URL,stackoverflow到处都是重复的问题。

您使用的是什么语言?很可能有一个正则表达式验证库具有这样的常见情况。对于年份:
(\d\d |[12]\d\d\d)
。对于URL:这很难,你真的想提前检查吗?为什么不让下一个更高的协议来处理URL的有效性。您使用的是什么语言?很可能有一个正则表达式验证库具有这样的常见情况。对于年份:
(\d\d |[12]\d\d\d)
。对于URL:这很难,你真的想提前检查吗?为什么不让下一个更高的协议处理URL的有效性呢。