[已解决] 愁人的正则表达式
本帖最后由 abcabc8759 于 2011-5-7 22:39 编辑请问一下,如何把"2011/05/02"中的数字,转换为20110502,想用正则表达式或是其它方法,结果一直不行哦!个位帮帮忙!
\d\d\d\d,返回是2011哦!
\d*\d返回是:
2011
05
02
问题已经解决了,怎么移到“已解决中”啊?版主帮个忙吧! 本帖最后由 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','/',''))
什么地方不好了? 本帖最后由 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"))原来少了个右括号,发上来时误删除啦 谢谢netegg,学习了! kevinch ,您的运行不了,谢谢你的热心帮助! 有没有不用正则的方式啊? kevinch ,您的运行不了,谢谢你的热心帮助!
abcabc8759 发表于 2011-5-2 12:55 http://www.autoitx.com/images/common/back.gif
我运行过了才发的,怎么会你那里无法运行呢? 我的版本为: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) 本帖最后由 kevinch 于 2011-5-2 13:02 编辑
我的才3.2.9.3,简单的几句,怎么会错呢?奇怪啦!
原来后面少了个括号
我发代码的时候看到错行了,就按了下backspace,结果删除了一个括号,最右边的,加上就好啦。 回复 6# abcabc8759
给你答案了 本帖最后由 love5173 于 2011-5-2 13:20 编辑
$str="2011/05/02"
$str=StringRegExpReplace($str,'/',"")
MsgBox(0,"",$str)楼主的字符串只需要把/去掉就可以了,根本不用提取什么 $shij1 = @YEAR&""&@MON&""&@MDAY&""
MsgBox(0, "年月日", $shij1) 最近,滥用正则的情况非常严重. 本帖最后由 netegg 于 2011-5-2 13:46 编辑
回复 13# 3mile
{:face (229):}悲剧正在如火如荼的上演中
正则的用处以个人的看法,不是用来处理单一字符串的,而是大段包含某些同形状字符串的文本的 做题Local $sText = '2011/05/02'
Local $sResult = StringRegExpReplace($sText, '(\d+)\/(\d+)\/(\d+)', '\1\2\3')
MsgBox(0, "", $sResult)
页:
[1]
2