找回密码
 加入
搜索
查看: 4400|回复: 10

[AU3基础] 有关正则提取数字时间的问题(已解决)

 火.. [复制链接]
发表于 2010-6-6 08:16:43 | 显示全部楼层 |阅读模式
本帖最后由 gto250 于 2010-6-8 07:01 编辑

有一个字符串(气象台2010-6-6早上6时发布的“短期天气预报”:),括号内的部分,年月日中,月和日是会变化的,可能1位数字也有可能是2位,后面的早上6时也是变化的,可能是中午12时,也可能是下午15时。
像这种的正则应该怎么写?

评分

参与人数 1金钱 +10 收起 理由
afan + 10 感谢主动将修改帖子分类为[已解决],请继续 ...

查看全部评分

发表于 2010-6-6 10:26:00 | 显示全部楼层
这样你实验看看
(早上\d+时|中午\d+时|下午\d+时|晚上\d+时)
发表于 2010-6-6 10:26:03 | 显示全部楼层
$sText = '气象台2010-6-6早上6时发布的“短期天气预报”'
$aReg = StringRegExp($sText, '\d*-\d*-\d*|(\d*)时', 3)
For $i = 0 To UBound($aReg) - 1
        MsgBox(0, '匹配结果:', $aReg[$i])
Next

评分

参与人数 1金钱 +15 收起 理由
afan + 15

查看全部评分

发表于 2010-6-6 10:28:35 | 显示全部楼层
#include <array.au3>
$str='气象台2010-6-6早上6时发布的“短期天气预报”:'
$msg=StringRegExp($str,'(\d{4})\-(\d{1,2})\-(\d{1,2}).*(\d{1,2})',3)
If Not @error Then
        _ArrayDisplay($msg)
EndIf

评分

参与人数 1金钱 +15 收起 理由
afan + 15

查看全部评分

发表于 2010-6-6 12:40:15 | 显示全部楼层
本帖最后由 afan 于 2010-6-6 12:42 编辑

根据字符串特征及要求,使用“\d+”即可
$Str = '气象台2010-5-7早上6时发布的“短期天气预报”:'
$sR = StringRegExp($Str, '\d+', 3)
MsgBox(0, 0, $sR[0] & '年' & $sR[1] & '月' & $sR[2] & '日' & $sR[3] & '时')
发表于 2010-6-6 21:41:39 | 显示全部楼层
根据字符串特征及要求,使用“\d+”即可
afan 发表于 2010-6-6 12:40


确实,以数字作为特征字符串思路比较巧妙。
 楼主| 发表于 2010-6-8 07:01:09 | 显示全部楼层
谢谢各位!!!
发表于 2010-7-1 10:18:27 | 显示全部楼层
根据字符串特征及要求,使用“\d+”即可
afan 发表于 2010-6-6 12:40


一定要用 \d+吗。直接用 \d 好像也可以吧
发表于 2010-7-1 11:42:40 | 显示全部楼层
回复 8# chenronting


    \d 可以,不过匹配的都是单个数字,组装起来太费劲了吧~
发表于 2010-7-1 12:46:25 | 显示全部楼层
回复 9# afan


    呵呵 。明白了。我直接显示出来看。~~没有注意到原来都是一个个的~~
发表于 2010-7-1 12:49:56 | 显示全部楼层
回复 10# chenronting


    所以 + * 之类的就有其存在的意义了,呵呵
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-10-3 17:14 , Processed in 0.090233 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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