全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
3211 1
2011-11-24
我想要在SAS中用正则表达式匹配时间
比如在一个变量有如下观测
abc_2010.1.1
abc_2011.1.11
我用了如下的正则表达式:
"/((((19|20)?\d{2}).(0?[13-9]|1[012]).(0?[1-9]|[12]\d|30))|(((19|20)?\d{2}).(0?[13578]|1[02]).31)|(((19|20)?\d{2}).0?2.(0?[1-9]|1\d|2[0-8]))|((((19|20)?([13579][26]|[2468][048]|0[48]))|(2000)).0?2.29))/"
这段表达式是我在网上抄来的,基本上就是匹配合法的日期,并且考虑了闰年
现在的问题是,这上述的正则表达式,匹配上述观测后得到的是
abc_2010.1.1
abc_2011.1.1
也即他匹配到合法的之后就不再继续匹配下去了
而我想让他先看看后面还有没有合适的,如果有的话就取能匹配的最大值
请问该如何处理,谢谢大牛
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2011-11-24 10:23:40
嗯,刚在网上搜了下,用零宽度负预测先行断言(?!exp)就可以了
即在上面的正则表达式后加(?!\d)即可
意味着匹配的表达式后面不能再加数字了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群