我正试图通过以下字符串获取日期和月份:
5月2日
或4月22日
或12月2日
但是我无法弄清楚正确的正则表达式:
我已经尝试了\d{1,2}[^月]
和\d{1,2}[^日]
但是如果当天或月份有两位数,这只会返回一些内容。
我缺少什么想法?
感谢。
答案 0 :(得分:1)
\d{1,2}
匹配1个数字,[^月]
匹配另一个数字。您当前的正则表达式将匹配两位数字,然后匹配除月
确保月
遵循的正确方法是使用前瞻性\d{1,2}(?=月)
,如使用中所见here
答案 1 :(得分:0)
假设您每年有12个月,每月最多31天这会让您关闭,在您确定语法正确后,您仍需要进行边界检查; (阅读;月19日37日将是有效的语法)
1?\d月[123]?\d日
编辑:这是一个更好的正则表达式,不需要检查边界,也不需要前瞻;
^(1[012]|[1-9])月(3[01]|[12]\d|[1-9])日$