我使用的脚本应该读取<li>
标记中的内容,请注意li tag
没有任何结束标记
<tr class="colors_background_main">
<td colspan="2"> <li>Tools Color:blue
</td>
</tr>
我尝试的是使用以下常规表现,但它没有显示任何结果
<li>\S*(.*)?</td>
阅读内容的经典ASP代码
Set objRegExp = New RegExp
strPattern = "(?s)<li>\S*(.*?)</td>"
'<td[^>]*><p>.+?<\/p><\/td>"
objRegExp.Pattern = strPattern
objRegExp.IgnoreCase = True
objRegExp.Global = True
Set colMatches = objRegExp.Execute(strContents)
If colMatches.Count > 0 Then
strTitle = colMatches(0).Value
Else
strTitle = ""
End If
Set objRegExp = Nothing
Response.write(strTitle)
答案 0 :(得分:4)
.
与换行符不匹配。
请尝试以下操作:
(?s)<li>\S*(.*?)</td>
除非您的正则表达式endigne支持DOTALL模式,否则这不起作用。在这种情况下,请使用以下正则表达式:
<li>\S*([\s\S]*?)</td>
注意强>
原始正则表达式将在最后完成。您应该写(.*?)
这是不合适的,而您(.*)?
表示可选。 (谢谢@DioF)