有谁知道英国日期格式的正则表达式

2023-12-12

嗨,有人知道英国日期格式的正则表达式吗?日/月/年。

dd 或 mm 可以是 1 个字符,例如1/1/2010 但年份必须始终为 4 个字符。

提前致谢


^\d{1,2}/\d{1,2}/\d{4}$

将匹配 1/1/2000、07/05/1999,但也匹配 99/77/8765。

因此,如果您想做一些基本的合理性检查,您需要

^(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/\d{4}$

这仍然会匹配 31/02/9999,所以如果你想捕获这些,它会变得更加毛茸茸:

^(?:(?:[12][0-9]|0?[1-9])/0?2|(?:30|[12][0-9]|0?[1-9])/(?:0?[469]|11)|(?:3[01]|[12][0-9]|0?[1-9])/(?:0?[13578]|1[02]))/\d{4}$

但这仍然无法赶上闰年。所以,修改来自 regexlib.com 的正则表达式巨兽:

^(?:(?:(?:(?:31\/(?:0?[13578]|1[02]))|(?:(?:29|30)\/(?:0?[13-9]|1[0-2])))\/(?:1[6-9]|[2-9]\d)\d{2})|(?:29\/0?2\/(?:(?:(1[6-9]|[2-9]\d)(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))|(?:0?[1-9]|1\d|2[0-8])\/(?:(?:0?[1-9])|(?:1[0-2]))\/(?:(?:1[6-9]|[2-9]\d)\d{2}))$

将匹配

1/1/2001
31/5/2010
29/02/2000
29/2/2400
23/5/1671
01/1/9000

and fail

31/2/2000
31/6/1800
12/12/90
29/2/2100
33/3/3333

总而言之,正则表达式也许能够匹配日期;验证它们不是他们的强项,但如果它们是您可以使用的全部,那当然是可能的。但看起来很可怕:)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有谁知道英国日期格式的正则表达式 的相关文章

  • Perl:Chomping字符串后,它不打印字符串的值

    所以我目前正在尝试编写一个 perl 脚本来读取一个文件并写入另一个文件 目前 我遇到的问题是从解析的行中删除换行符 我输入这样的文件 BetteDavisFilms txt 1 Wicked Stepmother 1989 as Mira
  • 使用西里尔字母的正则表达式

    我有一个用于文本区域字段中字数统计的 jQuery 函数 此外 它排除所有用 三重括号 封闭的单词 它对于拉丁字符效果很好 但对于西里尔字母句子有问题 我认为错误部分与正则表达式有关 field val replace g match b
  • 删除删除线的 unicode 文本?

    我偶尔会收到用户的输入 他们正在使用那些烦人的 stikethrough 文本生成器 这破坏了我的代码 我尝试过在这里找到的一些代码 string preg replace x00 x1F x80 xFF string 它有效 但我需要它只
  • 用于匹配 Liquid 模板中标签的正则表达式:html 标签内的“">”

    我必须在 Liquid 模板中为 body 标签编写匹配模式 虽然匹配 HTML 标签非常简单 但我遇到了 HTML 特殊字符可以在 Liquid 代码中使用的问题 例子 或简化
  • 有没有办法使用正则表达式来匹配ansible中的主机?

    我正在尝试使用正则表达式模式与 ansible 匹配主机 但它没有按预期工作 我的库存情况如下 group1 hello1 world1 hello2 world2 group2 hello3 而我的任务是 debug msg item w
  • 通过 JMeter 正则表达式解析 HTML

    我在 JMeter 中的正则表达式方面遇到一些问题 我有这个 HTML 表单
  • C# 使用正则表达式获取内容内的 html 标签和下一个元素

    这是我的html div class 50f3 Followed by a href https www facebook com zurabj followers 7 583 people a div div class 50f3 Fri
  • 如何对“s3cmd ls”的输出进行排序

    Amazon s3cmd ls 的输出如下 2010 02 20 21 01 1458414588 s3 file1 tgz 00 br 2010 02 20 21 10 1458414527 s3 file1 tgz 01 br 2010
  • python检查年份是否在字符串中[重复]

    这个问题在这里已经有答案了 假设我有一个句子列表 其中许多包含数字 但不是全部 mylist The current year is 2015 AD I have 2 dogs 我想知道列表中的哪些元素包含有效年份 例如 1000 到 30
  • 子域的正则表达式

    有谁知道如何编写一个只允许的正则表达式a zA Z0 9 字母 数字 点和破折号 BUT永远不会以点或破折号开始或结束 我试过这个 a zA Z0 9 但是如果我写一些像 john 这样的东西 它就会起作用 但我不想这样做 因为不允许 子域
  • java正则表达式查找第一个和最后一个字符

    我正在编写一个程序来递归地确定字符串是否为回文 我决定尝试使用正则表达式 但我在理解语法时遇到了一些困难 我需要做的是比较第一个和最后一个字符 看看它们是否相同 我该怎么做呢 Thanks 编辑 我发现这很有帮助 AirSource Ltd
  • 清理货币字符串的快速方法[重复]

    这个问题在这里已经有答案了 可能的重复 PHP 取消货币格式 https stackoverflow com questions 5139793 php unformat money 如何去掉所有不是数字或点的东西 替换 with 使用轻正
  • 用任意数量的逗号和空格分割字符串

    我有一个字符串 我试图将其转换为列表 但我得到空条目 A B C D returns A B C D 我想删除所有 空 逗号 A B C D 我想 current split s 这不会产生我想要的结果 我应该使用什么正则表达式 您需要两步
  • 使用正则表达式匹配非单词字符但不匹配笑脸

    我有一个 Java 程序 它应该从字符串中删除所有非字母字符 除非它们是笑脸 例如 或 或 P 与相反的搭配非常容易 a zA Z P但我不知道如何否定这个表达式 由于我使用的是 String replaceAll 函数 因此它必须采用否定
  • sonar project.properties 忽略包含正则表达式的文件

    我试图排除声纳 project properties 文件中包含生成代码的文件 我已添加以下内容project properties sonar issue ignore allfile generated GeneratedCodeAtt
  • php 验证十进制格式的纬度/经度字符串

    好吧 我有一个巨大的经度和纬度坐标列表 也就是说 我还有一些来源来提取这些坐标 其中一些来自 get post 方法 这可能会导致我的网站 服务中存在潜在的安全漏洞 所以我想弄清楚如何通过 PHP 验证经度和纬度 我正在考虑通过 preg
  • Python正则表达式查找所有单个字母字符

    我想找到字符串中单个字母字符每次出现的所有索引 我不想捕获单个字符 html 代码 这是我的代码 import re s fish oil B stack peanut c b words re finditer S s has alpha
  • Boost 正则表达式:获取命名组

    如何使用 Boost 正则表达式获取与模式匹配对应的组名称 以下将输出与给定模式匹配的表达式 但是如何获取对应的命名组呢 boost regex pattern
  • 正则表达式仅匹配大写“单词”,但有一些例外

    我的技术字符串如下 The thing P1 must connect to the J236 thing in the Foo position 我想用正则表达式匹配那些仅大写的单词 即这里P1 and J236 问题是当句子的第一个字母
  • 正则表达式中的 ^.* 和 .*$ 是什么?

    谁能解释一下这些字符的含义 我查过它们 但我似乎不明白 整个正则表达式是 8 a z A Z 所以基本上是正则表达式的开始和结束字符 意思是 任何字符 意思是 任何数量的这个 因此意味着任意长度的任意字符串 表示字符串的开头 表示字符串的结

随机推荐