楼主: playmore
3251 1

[原创博文] 请问SAS中正则表达式匹配方法的问题 [推广有奖]

已卖:1645份资源

学科带头人

2%

还不是VIP/贵宾

-

TA的文库  其他...

R相关

经济学相关

金融工程

威望
1
论坛币
16356 个
通用积分
8.6697
学术水平
372 点
热心指数
394 点
信用等级
341 点
经验
15297 点
帖子
1194
精华
1
在线时间
1332 小时
注册时间
2007-1-11
最后登录
2025-12-1

初级学术勋章 初级热心勋章 中级热心勋章

楼主
playmore 发表于 2011-11-24 09:39:25 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
我想要在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
也即他匹配到合法的之后就不再继续匹配下去了
而我想让他先看看后面还有没有合适的,如果有的话就取能匹配的最大值
请问该如何处理,谢谢大牛
二维码

扫码加我 拉你入群

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

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

关键词:正则表达式 表达式 ABC 最大值 有没有 表达式 网上

沙发
playmore 发表于 2011-11-24 10:23:40
嗯,刚在网上搜了下,用零宽度负预测先行断言(?!exp)就可以了
即在上面的正则表达式后加(?!\d)即可
意味着匹配的表达式后面不能再加数字了
playmore邀请您访问ChinaTeX论坛!!!进入ChinaTeX论坛

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-2 04:11