yigao 发表于 2009-10-8 18:07:49

如此正则不正确?

本帖最后由 yigao 于 2009-10-8 20:09 编辑

有如下文本片断:

</script>
<!-- Yahoo CM Search Ends-->


            
      <div id="otheranswers" class="gmodule">
                        <div class="hd">
                                <h2>备选答案(1)<span> - 2009-10-08 12:32:01交付投票

</span></h2>
                        </div>
            <div class="bd">
                <ul>
                        <li class="ksentry">
                <div class="usrinfo">
                        <h3>回答1</h3>
                </div>
                        <div class="entrydetail">
            <p>有一点疗效。</p>      </div>
                <div class="entryinfo">
            <span>2009-09-28 12:59:40</span>
                  </div>
      <div class="actions"><div class="r"><button class="button" onclick="VoteOn

('1409092800411', 'BA15fbcldlm')">

想获取“备选答案(1)”后面的那个1(这个数字也许是12)。代码如下:$file = FileRead("d:\My AutoIt\temp.txt")
$array=StringRegExp($file, '备选答案(\d{0,2})', 3)
msgbox(0,"",@Error)
for $i=0 to UBound($array)-1
      MsgBox(0,"",$array[$i],2)
Next返回的@Error=0,说明数组有效,但不知道为什么得到的结果为空?
下一步是要获取VoteOn('1409092800411', 'BA15fbcldlm')中最后的BA15fbcldlm部分。对于StringRegExp中的偏移量还不太理解。

bing614 发表于 2009-10-8 18:23:20

() 要加\转义符

备选答案\(\d{0,2}\)

yigao 发表于 2009-10-8 18:58:19

确实如此!
能帮忙解疑偏移量的问题吗?谢谢!

bing614 发表于 2009-10-8 20:03:45

偏移量我的理解是丛第多少个字符开始匹配.

StringRegExp('<test>a</test><test>b</test> <test>c</Test>', '<(?i)test>(.*?)</(?i)test>', 1, 10)       

丛第10个字符开始匹配,忽略前面10个字符

yigao 发表于 2009-10-8 20:08:52

谢谢,明白了
页: [1]
查看完整版本: 如此正则不正确?