找回密码
 加入
搜索
查看: 7092|回复: 17

[系统综合] [已解决] 愁人的正则表达式

 火.. [复制链接]
发表于 2011-5-2 12:38:30 | 显示全部楼层 |阅读模式
本帖最后由 abcabc8759 于 2011-5-7 22:39 编辑

请问一下,如何把"2011/05/02"中的数字,转换为20110502,想用正则表达式或是其它方法,结果一直不行哦!个位帮帮忙!
\d\d\d\d,返回是2011哦!
\d*\d返回是:
[01]2011
[02]05
[03]02



问题已经解决了,怎么移到“已解决中”啊?版主帮个忙吧!
发表于 2011-5-2 12:49:07 | 显示全部楼层
本帖最后由 netegg 于 2011-5-2 13:08 编辑

回复 1# abcabc8759

Local $string, $date = "2011/05/02"
$array = StringRegExp($date,'\d+', 3)
For $i = 0 To UBound($array) -1
        $string &= $array[$i]
Next
MsgBox(0,0,$string)
为什么要用正则呢
msgbox(0,0,stringreplace('2011/05/02','/',''))
什么地方不好了?
发表于 2011-5-2 12:52:12 | 显示全部楼层
本帖最后由 kevinch 于 2011-5-2 13:03 编辑
$s_Str="2010/05/20"
MsgBox(0,"",StringRegExpReplace($s_Str,"(\d{4})[^\d](\d{1,2})[^\d](\d{1,2})","\1\2\3"))
原来少了个右括号,发上来时误删除啦
 楼主| 发表于 2011-5-2 12:52:36 | 显示全部楼层
谢谢netegg,学习了!
 楼主| 发表于 2011-5-2 12:55:34 | 显示全部楼层
kevinch ,您的运行不了,谢谢你的热心帮助!
 楼主| 发表于 2011-5-2 12:55:51 | 显示全部楼层
有没有不用正则的方式啊?
发表于 2011-5-2 12:56:22 | 显示全部楼层
kevinch ,您的运行不了,谢谢你的热心帮助!
abcabc8759 发表于 2011-5-2 12:55

我运行过了才发的,怎么会你那里无法运行呢?
 楼主| 发表于 2011-5-2 12:58:27 | 显示全部楼层
我的版本为:3.3.6.1
D:\2.au3(2,86) : 错误: 表达式错误
MsgBox(0,"",StringRegExpReplace($s_Str,"(\d{4})[^\d](\d{1,2})[^\d](\d{1,2})","\1\2\3")
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
D:\2.au3 - 1 error(s), 0 warning(s)
发表于 2011-5-2 13:01:22 | 显示全部楼层
本帖最后由 kevinch 于 2011-5-2 13:02 编辑

我的才3.2.9.3,简单的几句,怎么会错呢?奇怪啦!

原来后面少了个括号
我发代码的时候看到错行了,就按了下backspace,结果删除了一个括号,最右边的,加上就好啦。
发表于 2011-5-2 13:09:12 | 显示全部楼层
回复 6# abcabc8759

给你答案了
发表于 2011-5-2 13:18:25 | 显示全部楼层
本帖最后由 love5173 于 2011-5-2 13:20 编辑

$str="2011/05/02"
$str=StringRegExpReplace($str,'/',"")
MsgBox(0,"",$str)
楼主的字符串只需要把/去掉就可以了,根本不用提取什么
发表于 2011-5-2 13:18:41 | 显示全部楼层
$shij1 = @YEAR&""&@MON&""&@MDAY&""
MsgBox(0, "年月日", $shij1)
发表于 2011-5-2 13:40:30 | 显示全部楼层
最近,滥用正则的情况非常严重.
发表于 2011-5-2 13:43:53 | 显示全部楼层
本帖最后由 netegg 于 2011-5-2 13:46 编辑

回复 13# 3mile


    悲剧正在如火如荼的上演中

正则的用处以个人的看法,不是用来处理单一字符串的,而是大段包含某些同形状字符串的文本的

评分

参与人数 2金钱 +30 收起 理由
afan + 10 我很赞同
3mile + 20 我很赞同

查看全部评分

发表于 2011-5-2 14:19:50 | 显示全部楼层
做题
Local $sText   = '2011/05/02'
Local $sResult = StringRegExpReplace($sText, '(\d+)\/(\d+)\/(\d+)', '\1\2\3')
MsgBox(0, "", $sResult)
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-6-12 23:19 , Processed in 0.095091 second(s), 28 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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