正则表达式:日期完全匹配

标签 regex date formula

我有一个关于日期时间的小问题

2014 年 4 月 15 日

我写了这个正则表达式:\D+[a-z]\d{2},\d{1,4}

问题是当我在日期之前有文本时,例如:

文本文本2014年4月15日文本

好吧,在这种情况下,我的正则表达式还选择了文本,而不仅仅是日期。所以我需要稍微修改我的正则表达式以严格查找我的日期,而不是之前或之后的文本。

谁能帮帮我?

最佳答案

只需使用 [a-zA-Z]+ 来匹配月份名称:

[a-zA-Z]+ \d{2}, \d{1,4}

参见 regex demo

另外,如果需要匹配这些字符串,可以考虑使用字边界,\b[a-zA-Z]+\d{2},\d{1,4}\b在较大的字符串中,或​​者如果您需要完整字符串匹配,请考虑使用 anchor :^[a-zA-Z]+\d{2},\d{1,4}$

请注意:\d{1,4} 匹配 1 到 4 位数字。如果您计划匹配 4 位数年份,请使用 \d{4}。如果您打算匹配 2 位或 4 位数字年份,请使用 (\d{4}|\d{2}),但这次您确实需要字边界或 anchor 。

关于正则表达式:日期完全匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42112555/

相关文章:

vba - 更改列中数值的符号

python - 如何将参数传递给 Python 函数?

java - 如何执行网络抓取以在 Google App Engine 上查找 Java 中的特定链接页面?

使用正则表达式替换字符串中的最后一个数字

regex - R + reshape : using colsplit w/regex

jquery - JavaScript 中相同 match() 方法的两个字符串

excel - 如何在 Excel 中将不同的日期格式转换或更改为一种格式

mysql - SQL 将数字分配给日期,按值分组

java - 从设备获取当前时间毫秒并将其转换为具有不同时区的新日期

colors - Alpha 混合红色、蓝色和绿色图像以生成着色为任何 RGB 值的图像?