heroxianf 发表于 2015-10-18 01:48:29

正则表达式获取数字[已解决]

本帖最后由 heroxianf 于 2015-10-18 12:03 编辑

想抓取网页上一个下载量的数字出来。

比如“谷歌浏览器已经下载1,520,000次” 这个数字随着下载增加而改变,希望每次都抓取正确的出来。

如何正则抓取这个下载次数而且去掉 , 号。自己整的代码不行啊。Local $aResult = StringRegExp('谷歌浏览器已经下载1,520,000次', '{1,}', $STR_REGEXPARRAYMATCH)
MsgBox(0, "抓取结果", $aResult)希望高人指点一下。

afan 发表于 2015-10-18 10:22:58

MsgBox(0, '', StringRegExpReplace('谷歌浏览器已经下载1,520,000次', '^.+?(?=[\d,]+)|(?<=\d)\D*', ''))

heroxianf 发表于 2015-10-18 11:33:25

回复 2# afan

谢谢A大的帮助,虽然自己对这段看不明白,但确实解决了我的问题。如果我想从TXT里抓取“谷歌浏览器已经下载1,520,000次”应该怎么写呢?

问题又点傻帽希望帮助我一下。我的思路大致如下:
1,打开网页搜索谷歌下载次数
2,把该搜索结果保存为TXT文本
3,从TXT里抓取“谷歌浏览器已经下载1,520,000次”(这步我也不知道如何写)
4,从3步抓取的结果从匹配想要的下载次数(这步你帮我实现了)

afan 发表于 2015-10-18 11:55:38

固定文字很好匹配Local $Str = _
                '回复 2# afan ' & @CRLF & @CRLF & _
                '谢谢A大的帮助,虽然自己对这段看不明白,但确实解决了我的问题。如果我想从TXT里抓取“谷歌浏览器已经下载1,520,000次”应该怎么写呢?' & @CRLF & @CRLF & _
                '问题又点傻帽希望帮助我一下。我的思路大致如下:' & @CRLF & _
                '1,打开网页搜索谷歌下载次数' & @CRLF & _
                '2,把该搜索结果保存为TXT文本' & @CRLF & _
                '3,从TXT里抓取“谷歌浏览器已经下载1,520,000次”(这步我也不知道如何写)' & @CRLF & _
                '4,从3步抓取的结果从匹配想要的下载次数(这步你帮我实现了) ' & @CRLF
MsgBox(0, '原字符串', $Str)
Local $aSR = StringRegExp($str, '(?s)^.+?(谷歌浏览器已经下载[\d,]+次).*', 1)
If @Error Then Exit MsgBox(48, '', '无匹配')
MsgBox(0, StringRegExpReplace($aSR, '^.+?(?=[\d,]+)|(?<=\d)\D*', ''), $aSR)

heroxianf 发表于 2015-10-18 12:02:24

回复 4# afan

谢谢A大大帮助,问题解决了。
页: [1]
查看完整版本: 正则表达式获取数字[已解决]