我有一个关于日期时间的小问题
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/