找回密码
 加入
搜索
查看: 1818|回复: 2

[已解决]如何正则匹配时间并比较大小

[复制链接]
发表于 2009-12-15 02:06:44 | 显示全部楼层 |阅读模式
本帖最后由 tan133 于 2009-12-15 19:15 编辑

$text_in = _
'some text1 12/31/2009 01:02:03 some text2' & @CRLF & _
'some text3 02/28/2009 11:22:33 some text4'

$text_out = StringRegExpReplace($text_in, '\x20(\d{2})/(\d{2})/(\d{4})\x20', ' $2.$1.$3 ')

MsgBox(0, "RegExp Replace Test - back-references", 'OLD:' & @CRLF & $text_in & @CRLF & @CRLF & 'NEW:' & @CRLF & $text_out )

=========================================
这个是帮助里面的一些内容
我的问题是,怎么匹配这个内容
12/31/2009 把这几个值分别赋给不同的变量,我其实是想取得这个值
afdkafd 12/31/2009 01:02:03 dfdf
dfdadfdrt 12/30/2009 11:02:03 dfdsafd
我想取得两行中的时间,然后比较二者的大小,
因为前后都有长度不定的其他文字,或者数字
用SPLIT就算能做,也非常的麻烦,不过,始终感觉没正则方便
如果没人回答,我又找到方法的话,我会回来的更新的
发表于 2009-12-15 11:30:56 | 显示全部楼层
本帖最后由 smartzbs 于 2009-12-15 15:20 编辑

#include <array.au3>
$s_text = "afdkafd 22/21/2009 01:02:03 dfdf dfdadfdrt 12/30/2009 11:02:03 dfdsafd"
$a = StringRegExp($s_text,"\d{2}/\d{2}/\d{4}",3);简单规则

$a = StringRegExp($s_text,"[01]?\d/[0-3]?\d/[12]\d{3}",3);稍严一点规则(不是最严)

$a = StringRegExp($s_text,"(?:0?[1-9]|1[12])/(?:0?[1-9]|[12]\d|3[01])/[12]\d{3}",3);更严(不允许如12/33/2009非日期格式)更灵活(允许数字0)如12/01/2009
_ArrayDisplay($a)

再严的话还要判断大小月,一般没必要
 楼主| 发表于 2009-12-15 19:14:10 | 显示全部楼层
本帖最后由 tan133 于 2009-12-15 19:15 编辑

本来,我也想用自学的来着,正准备回来回答
没想到就有人帮我解决了,谢谢smartzbs 大大
你还是新手上路?我看你完全成骨灰了

这个因为是有现成的时间摆在那儿,
系统生成的时间,格式是正确的,没去管他是不是不合理的必要
谢谢啊
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-4-30 02:26 , Processed in 0.075860 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表