http://regexr.com/3cs9n
正如你在这个链接上看到的,我的正则表达式代码运行良好。 但VB.NET中的相同代码存在问题。 正如你在regexr网站上看到的,我必须抓住25场比赛。 但VB.NET返回12场比赛。 (当我看一场比赛时,我看到了两场比赛)。
<tr><td align=LEFT><A HREF="/satellite/?s=41315">BEIDOU M3-S</A></td><td align=CENTER>41315</td><td align=CENTER>2016-006A</td><td align=CENTER><a href="/browse/?y=2016&m=2">February 1, 2016</a></td><td align=CENTER>783</td><td align=CENTER><button class="sButton" onclick="javascript:window.location.href='/?s=41315'">TRACK IT</button></td></tr> <tr bgcolor="#F4F4F4"><td align=LEFT><A HREF="/satellite/?s=40938">BEIDOU I2-S</A></td><td align=CENTER>40938</td><td align=CENTER>2015-053A</td><td align=CENTER><a href="/browse/?y=2015&m=9">September 29, 2015</a></td><td align=CENTER>1436.2</td><td align=CENTER><button class="sButton" onclick="javascript:window.location.href='/?s=40938'">TRACK IT</button></td></tr>这是vb.net上的1场比赛。 实际上必须是2场比赛(似乎在regexr上)。
提前致谢
http://regexr.com/3cs9n
as you can see on this link my regex code works well. But same code in VB.NET having problem. As you can see on regexr website i must catch 25 matches. But VB.NET is returns 12 matches. (I see 2 matches when i look into a match).
<tr><td align=LEFT><A HREF="/satellite/?s=41315">BEIDOU M3-S</A></td><td align=CENTER>41315</td><td align=CENTER>2016-006A</td><td align=CENTER><a href="/browse/?y=2016&m=2">February 1, 2016</a></td><td align=CENTER>783</td><td align=CENTER><button class="sButton" onclick="javascript:window.location.href='/?s=41315'">TRACK IT</button></td></tr> <tr bgcolor="#F4F4F4"><td align=LEFT><A HREF="/satellite/?s=40938">BEIDOU I2-S</A></td><td align=CENTER>40938</td><td align=CENTER>2015-053A</td><td align=CENTER><a href="/browse/?y=2015&m=9">September 29, 2015</a></td><td align=CENTER>1436.2</td><td align=CENTER><button class="sButton" onclick="javascript:window.location.href='/?s=40938'">TRACK IT</button></td></tr>this is 1 match on vb.net. Actually must be 2 matches (seems like on regexr).
thanks inadvance
最满意答案
我想也许问题是你的匹配模式包含一些双引号符号而你没有处理这个问题。
所以我编辑了你的模式,尝试了下面的代码,它返回两个匹配:
Dim ptrn As String = "<tr( bgcolor=""#F4F4F4""|)><td align=LEFT><A HREF=""(.*?)"">(.*?)<\/A><\/td><td align=CENTER>(.*?)<\/td><td align=CENTER>(.*?)<\/td><td align=CENTER><a href=""(.*?)"">(.*?)<\/a><\/td><td align=CENTER>(.*?)<\/td><td align=CENTER><button class=""sButton"" onclick=""(.*?)"">TRACK IT<\/button><\/td><\/tr>" MessageBox.Show(Regex.Matches(txtInput.Text, ptrn).Count.ToString & " matches found")截图:
希望这可以帮助 :)
I think maybe the problem is that your matching pattern contains some doublequotes symbols and you're not handling this..
So I edited your pattern, tried the following code, and it returns two matches:
Dim ptrn As String = "<tr( bgcolor=""#F4F4F4""|)><td align=LEFT><A HREF=""(.*?)"">(.*?)<\/A><\/td><td align=CENTER>(.*?)<\/td><td align=CENTER>(.*?)<\/td><td align=CENTER><a href=""(.*?)"">(.*?)<\/a><\/td><td align=CENTER>(.*?)<\/td><td align=CENTER><button class=""sButton"" onclick=""(.*?)"">TRACK IT<\/button><\/td><\/tr>" MessageBox.Show(Regex.Matches(txtInput.Text, ptrn).Count.ToString & " matches found")Screenshot:
Hope this helps :)
更多推荐
发布评论