tl12315 发表于 2013-12-19 17:38:30

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

<td class="single">剩余刷新量:<span class="num_red">
                                               
                                                                                                        150
                                                </span>次</td>


想取中间的150这个值,请高手指点一下,最好给个完整的代码,谢谢!

tl12315 发表于 2013-12-19 17:38:54

静待高手的出现......

tl12315 发表于 2013-12-19 17:55:59

静待高手的出现......

afan 发表于 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, $Str)

binghc 发表于 2013-12-19 19:26:16

回复 4# afan


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

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

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

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

我想这会方便很多,不然对我来说很痛苦啊

afan 发表于 2013-12-19 21:29:57

回复afan


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

我的 ...
binghc 发表于 2013-12-19 19:26 http://www.autoitx.com/images/common/back.gif


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

Ycxw2008 发表于 2013-12-20 19:25:05

回复 6# afan


    期待afan老大 修改 ,不知你遇到过没,新建标签的时候,旧标签的后面会多出 ■

afan 发表于 2013-12-20 20:00:00

回复afan


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


    从没遇到过哦,如有问题可在原帖讨论吧~
没人讨论的东西,我都不会更新的。

wua0550 发表于 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), '其中元素为: ' & $Test)
_ArrayDisplay($Test, UBound($Test))
页: [1]
查看完整版本: 请正则高手指点一下,中间带空格就取不到值的问题,非常感谢!