Regex 匹配日期格式和URL的正则表达式
嗨,我想能够设置正则表达式,以允许像这样输入日期 1900年1月1日或1970年1月1日,我有以下内容,但不确定如何使其在最后需要4或2Regex 匹配日期格式和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
^([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的有效性呢。