一个正则表达式的疑问,(解决)
本帖最后由 lluxury 于 2011-4-22 13:10 编辑重新表达了下思路,请见10楼
1825/1826要取/前成的部分
我写的 \b\w+(?=\/\b)
操作系统上可以取到,au3里就不行
$array = StringRegExp('1825/1826', '\b\w+(?=\/\b)', 3)
ConsoleWrite(" var" & $array & @CRLF)
这部分我没给全,和数组无关,其实是我取值取错了,取表的值,我给取成表这个变量身了.
$str=_IEPropertyGet($oInput, "innertext")
$sR = StringRegExp($str, '\b\w+(?=\:\b)', 3)
MsgBox(0, $str, $sR) 本帖最后由 love5173 于 2011-4-19 22:05 编辑
我对ConsoleWrite命令不是很熟
但是貌似你输出的是数组,是不是表达方式有问题,字符串怎么跟数组混一起了
写成(\d+)\/也可以的 本帖最后由 水木子 于 2011-4-19 22:49 编辑
不大明白楼主想取得什么样的结果!
#Include <Array.au3>
$avArray = StringRegExp('1825/1826', '^\d+', 3)
_ArrayDisplay($avArray) 1825/1826要取/前成的部分
我写的 \b\w+(?=\/\b)
操作系统上可以取到,au3里就不行
$array = StringR ...
lluxury 发表于 2011-4-19 21:55 http://www.autoitx.com/images/common/back.gif
ConsoleWrite(" var" & $array & @CRLF)
这时候$array是数组,你直接打印$array当然不行了。得象上面那样加脚标呀 本帖最后由 lluxury 于 2011-4-19 23:23 编辑
发现了,谢谢大大,已改正,不过出来个新问题
我是从网页抓的数据
$oInput 的值为 1825/1826
发现了,谢谢大大,已改正,不过出来个新问题
我是从网页抓的数据,本身的数值如果带上引号,用上面的正则是可以的,但变量带上引号就失效了,这个怎么处理
$str=1825/1826
$sR = StringRegExp($str, '\b\w+(?=\:\b)', 3)
MsgBox(0, $str, $sR) 变量&'常量'
只有变量就不用引号了 回复 5# lluxury
大哥,刚说了数组不是那么表达的
msgbox(0,$str,$sr) 楼上的,我试过,只有变量, 不用引号,正则无结果,貌似1825/1826自己先运算了 回复lluxury
大哥,刚说了数组不是那么表达的
msgbox(0,$str,$sr)
love5173 发表于 2011-4-19 23:22 http://www.autoitx.com/images/common/back.gif
不好意思,拷错了,重编辑过 重新表达下
我从网页里抓出来 $s=1825/1826
我只要前面的1825有什么方法 重新表达下
我从网页里抓出来 $s=1825/1826
我只要前面的1825有什么方法
lluxury 发表于 2011-4-19 23:32 http://www.autoitx.com/images/common/back.gif
抓出来时,它是字符属性,不会计算的。你说了这么多,还不如把网址给出来,大家直接给你答案得了。 本帖最后由 lluxury 于 2011-4-20 00:22 编辑
我是想给,问题要注册的,今天不能注册...
举个例子
#include <IE.au3>
Filedelete ("Tq.txt")
$Url="http://www.soso.com/tb.q"
$oIE = _IECreate ($url, 0, 0)
$sHTML = _IEBodyReadHTML ($oIE)
$array= StringRegExp($sHTML, "<(?i)strong class=fs_14>(.*?)</(?i)strong>",1)
for $i = 0 to UBound($array) - 1
$tqtemp = $array[$i]
Next
$tqtoday = StringReplace($tqtemp, " ", " ")
msgbox (32,"天气",$tqtoday)
_IEQuit ($oIE)
输出是 多云,11℃
我就要里面的11,该怎么做呢 \d+(?=\\)
字数补丁 本帖最后由 lluxury 于 2011-4-20 01:04 编辑
谢谢,13楼,验证了下,好像不行
另外发现一点,取汉字好像会取到2个数组里,也许是我写错了
$str="位置:铁掌山 "
$array = StringRegExp($str, '[^位置:]', 3)
MsgBox(0, $str, $array)
出来个铁....
更新
用字符串函数,出来了,但不是正则....
$array=StringTrimLeft ( $str,3 ) 回复 14# lluxury
$str="位置:铁掌山 "
$array = StringRegExp($str, '(?<=位置:).+', 3)
MsgBox(0, $str, $array)
页:
[1]
2