(已解决)我被正则弄死了,求高手帮个小忙!
本帖最后由 ahphsautoit 于 2010-11-20 20:15 编辑如题,我头都糊了!一个小问题,请高手帮忙给个答案吧,我根据你的答案再研究开发了,呵呵!
有这样一个结构的字符串:“汉字123,汉字-256,汉字25.5,汉字75”
或者可以把长的字符串取成“汉字-123.5”这样的结构再来用正则取其中的数字,该怎么写正则呢?
我想把其中的数字(包括可能的“-”号和“.”号一起)提取出来存入数组,这个正则应该怎么写啊?
谢谢了!
$9=StringRegExp($8,'???',1){:face (113):}
笨办法倒是有一个:一个一个地检测字符,把符合要求的提出来再凑到一块,呵呵呵,你们不会想要我这样糟蹋AU3吧?快点给出你们的答案吧,我一定认真对照学习哦
呵呵,谢谢帮我解惑的大哥了,有点久没有上论坛,都不知道怎么改成“已解决”了,在标题上加了个已解决,呵呵呵! 我想你的‘-’号应该是负号,不会出现在中间,‘.’号是小数号,只出现在数字中间,我给的表达式是:
-?\d+(?:\.\d+)? 我想你的‘-’号应该是负号,不会出现在中间,‘.’号是小数号,只出现在数字中间,我给的表达式是:
-? ...
binghc 发表于 2010-11-20 10:28 http://www.autoitx.com/images/common/back.gif
你的意思是这样吗:$9=StringRegExp($8,'-?\d+(?:\.\d+)?',1),我试试哈,先谢谢了! 本帖最后由 binghc 于 2010-11-20 10:37 编辑
回复 3# ahphsautoit
是‘3’不是‘1’
回复 2# binghc
$9=StringRegExp($8,'-?\d+(?:\.\d+)?',1)
If @error Then
MsgBox(0,'',@error)
Else
For $10=1 To $9
MsgBox(0,Default,$9[$10])
Next
EndIf
我自己 用的:$9=StringRegExp($8,'\d',1)还提示错误:没有数组
用
$9=StringRegExp($8,'-?\d+(?:\.\d+)?',1)直接就退出了哦。
#include<array.au3>
$str='汉字123,汉字-256,汉字25.5,汉字75'
$str=StringRegExp($str,'-?\d+(?:\.\d+)?',3)
_ArrayDisplay($str)
我知道了,但是又有另外一个问题了:比如“汉字1000”,得到$9=1000,照我的理解应该是:$9=1,$9=1000啊,怎么回事呢,数组的个数存在哪儿去了? 不明白你的意思了,现在就问你一件事情,你到底想干什么?
是不是想找出目标字符串里的数值部分?如果是,我上面的代码就OK了 回复 8# binghc
是这样:
:“汉字123,汉字-256,汉字25.5,汉字75”
得到的答案是:数组$9
$9=123,$9=-256,$9=25.5,$9=75
我理解的应该是:
$9=123,$9=-256,$9=25.5,$9=75而$9应该是数组的个数等于4。我就是问你这个问题。 谢谢了!关于数组的问题我自己解决了!再次感谢 binghc ! 呵~我还是想说,你对数组不太了解,数组下标都是从0开始的
你说的是存放个数,那是系统函数或命令特有的,比如StringSplit()
如果你想获取数组个数可以用UBound这条命令 非常不错,谢谢 最近正在学正则,感觉正则强大无比。。。。 回复 13# .個朲綉√
呵呵~确实很强大! 如题,我头都糊了!一个小问题,请高手帮忙给个答案吧,我根据你的答案再研究开发了,呵呵!
有这样一个结 ...
ahphsautoit 发表于 2010-11-20 10:15 http://www.autoitx.com/images/common/back.gif
确实很强大,被正则弄死了还可以上论坛发贴求助!
页:
[1]
2