如何在vb.net中从HTML源中提取URL
我的问题是:我有一个程序可以获取指定URL的全部源代码。源代码将保存在变量中 部分源代码如下所示:如何在vb.net中从HTML源中提取URL,vb.net,string,split,Vb.net,String,Split,我的问题是:我有一个程序可以获取指定URL的全部源代码。源代码将保存在变量中 部分源代码如下所示: "thumbnail_src":"https:\/\/scontent-fra3-1.blablabla.com\/t51.2885-15\/s640x640\/sh0.08\/e35\/1234567_984778981596410_1107218704_n.jpg","is_video":false, 代码是有很多这样的URL。我希望我的代码查找部件“thumboil\u src”:“作为开
"thumbnail_src":"https:\/\/scontent-fra3-1.blablabla.com\/t51.2885-15\/s640x640\/sh0.08\/e35\/1234567_984778981596410_1107218704_n.jpg","is_video":false,
代码是有很多这样的URL。我希望我的代码查找部件“thumboil\u src”:“
作为开始提取过程并在”停止提取的标记,“is\u video”:
这显然应该在一个循环中完成,直到所有URL都被提取并保存到一个列表变量中
我怎样才能做到这一点呢?鉴于你最近的编辑,我将重做这个答案 因为看起来所有的东西都在一行文字中出现,所以我将如何处理它
Dim LargetxtLine as String = TheVeryLargylineofText
Dim CommaSplit as String() = LargetxtLine.split(","c)
Dim URLList as New List(of String)
Dim RG as New Regex("\"":\""(.*)\""")
For Each str as String in CommaSplit
If str.contains("thumbnail_src") Then
URLList.Add(RG.Match(str).value)
End If
Next
这将把长行文本分成可管理的块,然后使用正则表达式将其添加到URL列表(URLList)中
从那里你可以用一个列表(字符串)做任何事情
还有另一种方法可以不在“s”上分裂
如果你使用这个正则表达式
"thumbnail_src\"":\""(.*?)\"",\""is_video"
在其中添加“?”会将其转换为贪婪语句,这意味着它将在第一次发生时停止
之后,您可以创建如下URL列表
DIM RG as New Regex("thumbnail_src\"":\""(.*?)\"",\""is_video")
Dim URLList as MatchCollection = RG.Matches(reallybigString)
这确实是我个人的偏好我正试图将Regexp放入我的源代码中。codexer写的一个,这是正确的,但我在VisualBasicNet中遇到了错误
Dim regex As Regex = New Regex("thumbnail_src""": """(.*)""","""is_video")
Dim match As Match = regex.Match(sourceString)
If match.Success Then
Console.WriteLine(match.Value)
End If
我是这样试的……也是那样:
Dim regex As Regex = New Regex("thumbnail_src":"(.*)","is_video")
我输入正则表达式代码的方式有问题
以下是我需要实施的正确方法:
查看您的字符串:
https:\/\/scocontent-fra3-1.blabla.com\/t51.2885-15\/s640x640\/sh0.08\/e35\/1234567\u 984778981596410\u 1107218704\u n.jpg
,看起来不是有效的URL。。。这是表演吗?这个正则表达式怎么样:“缩略图”:“(.*)”,“你可以在那里看到它……你有没有偶然测试过这个Regex
?如果您这样做了,则在找到多个引用时,此操作不起作用。。。同样在你的例子中,你是基于一个小字符串,他可能有更多。。。代码不会编译,看看你的行
声明和RG声明…正则表达式编译。。。。在代码中,您需要使用double“s所以VS会将它识别为一个字符串。我没有说Regex
不会编译,我说的是代码。还要多次粘贴示例字符串,看看它是如何工作的,您发布的Regex
不会像我上面所说的那样适用于多个实例…他应该逐行查看源代码,并在Regex
中推荐一个解决方案。最好解释一下这个解决方案,因为OP可能不知道它打算如何工作。您有太多的“…将RG作为新的Regex(“thumbnail\u src”):(.*),“is_video”)实际上是为了避免混淆-让我们使用转义字符来代替…“thumbnail_src\”:(.*),“is_video”"谢谢!现在ReGEX的问题是它只给了我一个大的匹配而不是多个链接。我可以在这里演示这个问题:这一切都是在一个字符串中进行的吗?……你是如何接收文本的?StreamReader,文本文件等等……而且,我是+1你是因为你被困在DouChubGraceI的中间,用这个代码做的。“New System.Net.WebClient().DownloadString”,所以我下载了整个源代码并将其传递给一个字符串变量
thumbnail_src":"(.*)","is_video