根据当前系统日期匹配正则表达式-高分求助

问题如下:
表达式=XXXXXXXX 表示每天一次; 假如当前日期字符串为20140605 匹配为true

表达式=XXXXXX01 表示每月一号生效 假如当前日期字符串为20140605 匹配为false
表达式=XXXXXX05 表示每月五号生效 假如当前日期字符串为20140605 匹配为true
表达式=XXXXXX32 表示每月最后一天生效 假如当前日期字符串为20140605 匹配为false
表达式=XXXXXXW1 表示每周周一生效 假如当前日期字符串字符串为20140605 匹配为false
表达式=XXXXXXW4 表示每周周一生效 假如当前日期字符串为20140605 匹配为true
表达式=XXXXS101 表示每季度第1月1号生效 假如当前日期字符串为20140605 匹配为false
表达式=XXXXS305 表示每季度第3月5号生效 假如当前日期字符串为20140605 匹配为true
表达式=XXXXH101 表示每半年第1月1号生效 假如当前日期字符串为20140605 匹配为false
表达式=XXXXH605 表示每半年第6月5号生效 假如当前日期字符串为20140605 匹配为true
表达式=XXXX0101 表示每年1月1号生效 假如当前日期为20140605 匹配为false
表达式=XXXX0605 表示每年6月5号生效 假如当前日期字符串为20140605 匹配为true

求这样正则表达式,求大师指教,不胜感激!奖励积分多多!可以追加积分!
提示:编程语言是java

第1个回答  推荐于2021-01-24
\d{8}

\d{6}01
\d{6}05追问

有完整的正则表达式吗?或者每个单位规则一个表达式!

追答

不一定全用正则 例如每一周的 还是直接用程序语言判断更好 一般自带的有 因为周和日期不是固定对应关系的 所以比较难判断 正则一般要找出规律才能写出东西

还有 你的问题描述的还不够清楚
无法回答

你要把示例情况说的很细才可以
比如你用的什么程序语言 这个程序语言获取当前时间的时候 串是固定的20140605 格式

还是说 201465 或者 201465 00:00:00 这些都要细分 因为正则需要很严谨 分析不正确就是不能正确匹配 哪怕只差一点点

还有 不同的语言 正则的语法支持也不同 比如js  就不支持类似(?<=)的标签   专业点叫法叫什么忘记了

快下班了 准备回家

追问

哦 ,你说的对!我这边是使用java语言的,日期格式已经说明了,是固定的八位YYYYMMDD使用语言写比较麻烦,因此想使用正则比较简单! 谢谢你!能否提供帮助阿

第2个回答  2014-06-06
还不如直接用日期的相关方法判断,正则怎么判断周、季度呢?本回答被提问者采纳
相似回答