正则表达式在互联网上工作,但不适用于VB.NET(Regex Working on internet but doesn't work on VB.NET)

编程入门 行业动态 更新时间:2024-10-23 19:26:22
正则表达式在互联网上工作,但不适用于VB.NET(Regex Working on internet but doesn't work on VB.NET)

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:

enter image description here

Hope this helps :)

更多推荐

本文发布于:2023-08-06 09:33:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1446660.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:适用于   互联   但不   工作   网上

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!