我目前正试图连接两个小组,但我的表达失败了。
第一组应该包含0-9和一个完整的停止次数。第二组a到z加一个加号,按照自己的意愿。 HTML重复自我约300次,所以我只添加了两个例子。这只会匹配第一个实例而不再匹配。
Imports System.Text.RegularExpressions
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim text = "<tr><td>123.456<script type=""text/javascript"">document.write("":""+hello)</script></td><td>some html</td><td>date time</td><td>person</td></tr><tr><td>567.789<script type=""text/javascript"">document.write("":""+world)</script></td><td>html</td><td>time date4</td><td>person</td></tr>"
Dim rx As New Regex("<tr><td>(?<Number>[0-9.]+?)<script.+document\.write\("":""(?<Document>[a-z+]+?)\)</script>")
For Each m As Match In rx.Matches(text)
MsgBox(m.Groups(1).Value & vbNewLine & m.Groups(2).Value)
Next
End Sub
End Class
答案 0 :(得分:0)
答案 1 :(得分:0)
正则表达式.+
中使用了贪婪的运算符。通过使用其非贪婪的形式:.+?
,您将获得所有匹配。
<tr><td>(?<Number>[0-9.]+?)<script.+?document\.write\("":""(?<Document>[a-z+]+?)\)</script>