abcabc8759 发表于 2011-5-2 12:38:30

[已解决] 愁人的正则表达式

本帖最后由 abcabc8759 于 2011-5-7 22:39 编辑

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



问题已经解决了,怎么移到“已解决中”啊?版主帮个忙吧!

netegg 发表于 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','/',''))
什么地方不好了?

kevinch 发表于 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"))原来少了个右括号,发上来时误删除啦

abcabc8759 发表于 2011-5-2 12:52:36

谢谢netegg,学习了!

abcabc8759 发表于 2011-5-2 12:55:34

kevinch ,您的运行不了,谢谢你的热心帮助!

abcabc8759 发表于 2011-5-2 12:55:51

有没有不用正则的方式啊?

kevinch 发表于 2011-5-2 12:56:22

kevinch ,您的运行不了,谢谢你的热心帮助!
abcabc8759 发表于 2011-5-2 12:55 http://www.autoitx.com/images/common/back.gif
我运行过了才发的,怎么会你那里无法运行呢?

abcabc8759 发表于 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)

kevinch 发表于 2011-5-2 13:01:22

本帖最后由 kevinch 于 2011-5-2 13:02 编辑

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

原来后面少了个括号
我发代码的时候看到错行了,就按了下backspace,结果删除了一个括号,最右边的,加上就好啦。

netegg 发表于 2011-5-2 13:09:12

回复 6# abcabc8759

给你答案了

love5173 发表于 2011-5-2 13:18:25

本帖最后由 love5173 于 2011-5-2 13:20 编辑

$str="2011/05/02"
$str=StringRegExpReplace($str,'/',"")
MsgBox(0,"",$str)楼主的字符串只需要把/去掉就可以了,根本不用提取什么

xiezhang6263 发表于 2011-5-2 13:18:41

$shij1 = @YEAR&""&@MON&""&@MDAY&""
MsgBox(0, "年月日", $shij1)

3mile 发表于 2011-5-2 13:40:30

最近,滥用正则的情况非常严重.

netegg 发表于 2011-5-2 13:43:53

本帖最后由 netegg 于 2011-5-2 13:46 编辑

回复 13# 3mile


    {:face (229):}悲剧正在如火如荼的上演中

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

easefull 发表于 2011-5-2 14:19:50

做题Local $sText   = '2011/05/02'
Local $sResult = StringRegExpReplace($sText, '(\d+)\/(\d+)\/(\d+)', '\1\2\3')
MsgBox(0, "", $sResult)
页: [1] 2
查看完整版本: [已解决] 愁人的正则表达式