正则求助[已解决]
本帖最后由 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 分钟
这样表达清楚了吗?正是头大,现在还不行 #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))
真快的回答啊,谢谢 做题.
#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 22:44 http://www.autoitx.com/images/common/back.gif
自改答案:
((?s)\((\d+)\)"\s*>(.*?)<.*?"admintd">(.*?)<)
1.绿色部分前端应该再匹配一个OpenBook
2.红色部分可以精减成.*?
继续膜拜afan的正则. 本帖最后由 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) Local $Test = StringRegExpReplace($str, '(?s).*?Book\((\d+).+?>([^<]+).+?admintd">([^<]+)[^\d]+','\1' &@TAB& '\2' &@TAB&@TAB& '\3' &@CRLF)又到手一招... 回复 1# seniors
OpenBook\((?:9|10)\)\V+\s+<td class="admintd">(\d[^<]+)
页:
[1]