seniors 发表于 2011-4-17 22:10:35

正则求助[已解决]

本帖最后由 seniors 于 2011-4-17 22:32 编辑

<!--<td align="center" style="height:24;font-size:14px">新课程课堂教学行为创新—初中数学</td>-->
                                                                          <td class="admintd"><a href='# ' onclick="OpenBook(9)" >新课程课堂教学行为创新—初中数学</a></td>
                                                                        <td class="admintd">0 小时 0 分钟 </td>
                                                                        <td class="admintd">初中数学</td>
                                                                        <td class="admintd"><a onclick="return confirm('是否确定删除该课程?');" id="StudentBookShelflist_ctl01_Linkbutton1" href="javascript:__doPostBack('StudentBookShelflist$ctl01$Linkbutton1','')">删除</a></td>
                                                                </tr>
                                                                                  
                                                                                                                   <tr align="center">
                                                                                                                   <!--<td align="center" style="height:24;font-size:14px">初中数学新课程典型课案例与点评</td>-->
                                                                          <td class="admintd"><a href='# ' onclick="OpenBook(10)" >初中数学新课程典型课案例与点评</a></td>
                                                                        <td class="admintd">0 小时 0 分钟 </td>
                                                                        <td class="admintd">初中数学</td>我要其中的
9 新课程课堂教学行为创新—初中数学0 小时 0 分钟
10 初中数学新课程典型课案例与点评 0 小时 0 分钟

这样表达清楚了吗?正是头大,现在还不行

afan 发表于 2011-4-17 22:24:17

#include <Array.au3>
Local $Str = _
                '<!--<td align="center" style="height:24;font-size:14px">新课程课堂教学行为创新—初中数学</td>-->' & @CRLF & _
                '                                                                            <td class="admintd"><a href=' & "'# ' onclick=" & '"OpenBook(9)" >新课程课堂教学行为创新—初中数学</a></td>' & @CRLF & _
                '                                                                        <td class="admintd">0 小时 0 分钟 </td>' & @CRLF & _
                '                                                                        <td class="admintd">初中数学</td>' & @CRLF & _
                '                                                                        <td class="admintd"><a onclick="return confirm(' & "'是否确定删除该课程?');" & '" id="StudentBookShelflist_ctl01_Linkbutton1" href="javascript:__doPostBack(' & "'StudentBookShelflist$ctl01$Linkbutton1','')" & '">删除</a></td>' & @CRLF & _
                '                                                                </tr>' & @CRLF & _
                '                                                                                    ' & @CRLF & _
                '                                                                                                                   <tr align="center">' & @CRLF & _
                '                                                                                                                   <!--<td align="center" style="height:24;font-size:14px">初中数学新课程典型课案例与点评</td>-->' & @CRLF & _
                '                                                                            <td class="admintd"><a href=' & "'# ' onclick=" & '"OpenBook(10)" >初中数学新课程典型课案例与点评</a></td>' & @CRLF & _
                '                                                                        <td class="admintd">0 小时 0 分钟 </td>' & @CRLF & _
                '                                                                        <td class="admintd">初中数学</td>'
Local $Test = StringRegExp($str, '(?s)Book\((\d+).+?>([^<]+).+?admintd">([^<]+)', 3)
_ArrayDisplay($Test, UBound($Test))

seniors 发表于 2011-4-17 22:32:07

真快的回答啊,谢谢

easefull 发表于 2011-4-17 22:44:28

做题.
#include <Array.au3>
Local $sText =        _
                                '<!--<td align="center" style="height:24;font-size:14px">新课程课堂教学行为创新—初中数学</td>-->' & @CRLF & _
                                '                                                                            <td class="admintd"><a href=' & "'# ' onclick=" & '"OpenBook(9)" >新课程课堂教学行为创新—初中数学</a></td>' & @CRLF & _
                                '                                                                        <td class="admintd">0 小时 0 分钟 </td>' & @CRLF & _
                                '                                                                        <td class="admintd">初中数学</td>' & @CRLF & _
                                '                                                                        <td class="admintd"><a onclick="return confirm(' & "'是否确定删除该课程?');" & '" id="StudentBookShelflist_ctl01_Linkbutton1" href="javascript:__doPostBack(' & "'StudentBookShelflist$ctl01$Linkbutton1','')" & '">删除</a></td>' & @CRLF & _
                                '                                                                </tr>' & @CRLF & _
                                '                                                                                    ' & @CRLF & _
                                '                                                                                                                   <tr align="center">' & @CRLF & _
                                '                                                                                                                   <!--<td align="center" style="height:24;font-size:14px">初中数学新课程典型课案例与点评</td>-->' & @CRLF & _
                                '                                                                            <td class="admintd"><a href=' & "'# ' onclick=" & '"OpenBook(10)" >初中数学新课程典型课案例与点评</a></td>' & @CRLF & _
                                '                                                                        <td class="admintd">0 小时 0 分钟 </td>' & @CRLF & _
                                '                                                                        <td class="admintd">初中数学</td>'
Local $asResult = StringRegExp($sText, '((?s)\((\d+)\)"\s*>(.*?)<.*?"admintd">(.*?)<)', 3)
If Not @Error Then
        Local $iCount, $sTip, $iStep
        $iCount = UBound($asResult)/4
        $sTip   = "匹配 " & $iCount & " 个结果"
        _ArrayDisplay($asResult, $sTip)
       
        For $i = 1 To $iCount Step 1
                $iStep = 4*($i-1)+1
                $sTip &= @CRLF & $asResult[$iStep] &@TAB& $asResult[$iStep+1] &@TAB&@TAB& $asResult[$iStep+2]
        Next
        MsgBox(0, "匹配结果", $sTip)
EndIf
Exit

easefull 发表于 2011-4-17 23:08:10

做题.
easefull 发表于 2011-4-17 22:44 http://www.autoitx.com/images/common/back.gif

自改答案:
((?s)\((\d+)\)"\s*>(.*?)<.*?"admintd">(.*?)<)
1.绿色部分前端应该再匹配一个OpenBook
2.红色部分可以精减成.*?

继续膜拜afan的正则.

love5173 发表于 2011-4-17 23:23:15

本帖最后由 love5173 于 2011-4-17 23:32 编辑

#include <Array.au3>
Local $Str = _
                '<!--<td align="center" style="height:24;font-size:14px">新课程课堂教学行为创新—初中数学</td>-->' & @CRLF & _
                '                                                                            <td class="admintd"><a href=' & "'# ' onclick=" & '"OpenBook(9)" >新课程课堂教学行为创新—初中数学</a></td>' & @CRLF & _
                '                                                                        <td class="admintd">0 小时 0 分钟 </td>' & @CRLF & _
                '                                                                        <td class="admintd">初中数学</td>' & @CRLF & _
                '                                                                        <td class="admintd"><a onclick="return confirm(' & "'是否确定删除该课程?');" & '" id="StudentBookShelflist_ctl01_Linkbutton1" href="javascript:__doPostBack(' & "'StudentBookShelflist$ctl01$Linkbutton1','')" & '">删除</a></td>' & @CRLF & _
                '                                                                </tr>' & @CRLF & _
                '                                                                                    ' & @CRLF & _
                '                                                                                                                   <tr align="center">' & @CRLF & _
                '                                                                                                                   <!--<td align="center" style="height:24;font-size:14px">初中数学新课程典型课案例与点评</td>-->' & @CRLF & _
                '                                                                            <td class="admintd"><a href=' & "'# ' onclick=" & '"OpenBook(10)" >初中数学新课程典型课案例与点评</a></td>' & @CRLF & _
                '                                                                        <td class="admintd">0 小时 0 分钟 </td>' & @CRLF & _
                '                                                                        <td class="admintd">初中数学</td>'
Local $Test = StringRegExpReplace($str, '(?s).*?Book\((\d+).+?>([^<]+).+?admintd">([^<]+)[^\d]+','\1\2\3'&@CRLF)
;_ArrayDisplay($Test, UBound($Test))
MsgBox(0,"",$Test)

easefull 发表于 2011-4-18 00:07:54

Local $Test = StringRegExpReplace($str, '(?s).*?Book\((\d+).+?>([^<]+).+?admintd">([^<]+)[^\d]+','\1' &@TAB& '\2' &@TAB&@TAB& '\3' &@CRLF)又到手一招...

lixiaolong 发表于 2011-11-27 03:02:31

回复 1# seniors

OpenBook\((?:9|10)\)\V+\s+<td class="admintd">(\d[^<]+)
页: [1]
查看完整版本: 正则求助[已解决]