正则表达式,我写的判断月份日期的 MMDD这种格式的
02(?:0[1-9]|1[1-9]|2[1-8])|0[13578](?:0[1-9]|[12][1-9]|3[01])|0[469](?:0[1-9]|[12][1-...
02(?:0[1-9]|1[1-9]|2[1-8])
|0[13578](?:0[1-9]|[12][1-9]|3[01])
|0[469](?:0[1-9]|[12][1-9]|30)
|1[02](?:0[1-9]|[12][1-9]|3[01])
|11(?:0[1-9]|[12][1-9]|30)
我自己憋了半天写的,写的很复杂,但是逻辑是对了,不过我觉得如此复杂会不会性能有问题,不过这种优点他们说到是很易读o(∩_∩)o 哈哈,
请高手们给精简一下,小弟才开始系统的学习正则,大家多多指教。 展开
|0[13578](?:0[1-9]|[12][1-9]|3[01])
|0[469](?:0[1-9]|[12][1-9]|30)
|1[02](?:0[1-9]|[12][1-9]|3[01])
|11(?:0[1-9]|[12][1-9]|30)
我自己憋了半天写的,写的很复杂,但是逻辑是对了,不过我觉得如此复杂会不会性能有问题,不过这种优点他们说到是很易读o(∩_∩)o 哈哈,
请高手们给精简一下,小弟才开始系统的学习正则,大家多多指教。 展开
1个回答
展开全部
这个东东没有什么好优化的,看来你对非捕获组挺有了解。
但是这个表达式有一个严重的错误就是不能匹配:0229这个形式,这个涉及到瑞年(100的倍数被400整除否则被4整除)的判断,如果要加上去复杂度会提高很多很多。
已经很不容易了,加油!
但是这个表达式有一个严重的错误就是不能匹配:0229这个形式,这个涉及到瑞年(100的倍数被400整除否则被4整除)的判断,如果要加上去复杂度会提高很多很多。
已经很不容易了,加油!
追问
0229 我没考虑,听说阳历2月没有29号?常识太缺乏了,我查查网上去。。
我最近看了半周多的正则,肤浅啊,兄弟过奖了,我在文档里看到有惰性匹配啥的 说是写不好的话 会很占资源 。还要跟您多多请教!
追答
说到惰性匹配还是和其它模式(占有模式、贪婪模式)比较下匹配原理才能知道性能上的问题。
给你一个url可以自己研究下。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询