找回密码
 加入
搜索
查看: 4122|回复: 8

[AU3基础] 请正则高手指点一下,中间带空格就取不到值的问题,非常感谢!

  [复制链接]
发表于 2013-12-19 17:38:30 | 显示全部楼层 |阅读模式
<td class="single">剩余刷新量:<span class="num_red">
                                               
                                                                                                        150
                                                </span>次</td>


想取中间的150这个值,请高手指点一下,最好给个完整的代码,谢谢!
 楼主| 发表于 2013-12-19 17:38:54 | 显示全部楼层
静待高手的出现......
 楼主| 发表于 2013-12-19 17:55:59 | 显示全部楼层
静待高手的出现......
发表于 2013-12-19 18:58:16 | 显示全部楼层
光这一段 \d+ 即可
Local $Str = _
                '<td class="single">剩余刷新量:<span class="num_red">' & @CRLF & _
                '                                                ' & @CRLF & _
                '                                                                                                        150' & @CRLF & _
                '                                                </span>次</td>' & @CRLF
Local $aSR = StringRegExp($str, '\d+', 1)
If Not @Error Then MsgBox(0, $aSR[0], $Str)
发表于 2013-12-19 19:26:16 | 显示全部楼层
回复 4# afan


    对了,想给你的正则测试工具提点建议,你那个正则测试从一开始出来我就在用了

我的表达式越写越长越复杂,那个只能让表达式写在一个textfield中已经不能满足我的需求了

我希望表达式是分布在多行的,在真正执行的时候先合并成一行在执行真正的匹配

这个多行复杂表达式可以是在txt文件中,只要我的这个存放表达式的txt文件修改时间发生变化,你的工具就能检测到并进行真正的匹配

我想这会方便很多,不然对我来说很痛苦啊
发表于 2013-12-19 21:29:57 | 显示全部楼层
回复  afan


    对了,想给你的正则测试工具提点建议,你那个正则测试从一开始出来我就在用了

我的 ...
binghc 发表于 2013-12-19 19:26



    这个痛苦我早有了,一直想改,但没有时间搞。也没有想到一个最佳方案,之前确认准备动手的是增加一个记事本样式的子窗口,按需挂钩标签页面,还是比较麻烦。
   目前的解决方案是利用设计之初的功能:变量。开启即可组织输入较长的表达式。
过段时间再说好了。
发表于 2013-12-20 19:25:05 | 显示全部楼层
回复 6# afan


    期待afan老大 修改 ,不知你遇到过没,新建标签的时候,旧标签的后面会多出 ■
发表于 2013-12-20 20:00:00 | 显示全部楼层
回复  afan


    期待afan老大 修改 ,不知你遇到过没,新建标签的时候,旧标签的后面会多出 ■
Ycxw2008 发表于 2013-12-20 19:25



    从没遇到过哦,如有问题可在原帖讨论吧~
没人讨论的东西,我都不会更新的。
发表于 2013-12-22 16:38:14 | 显示全部楼层
### 友情提示:本脚本由 Au3.REHelper 于 2013/12/22 16:40 自动生成,不保证其正确性,请自行测试 ###
#include <Array.au3>
Local $Str = _
                '<td class="single">剩余刷新量:<span class="num_red">' & @CRLF & _
                '                                                ' & @CRLF & _
                '                                                                                                        150' & @CRLF & _
                '                                                </span>次</td>' & @CRLF & @CRLF
MsgBox(0, '原字符串', $Str)
Local $Test = StringRegExp($str, '(?s)剩余刷新量.*?(\d+).*?', 3)
If Not @Error Then MsgBox(0, '匹配数量: ' & UBound($Test), '其中[0]元素为: ' & $Test[0])
_ArrayDisplay($Test, UBound($Test))
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-10-6 12:25 , Processed in 0.086739 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表