Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在vb.net中从HTML源中提取URL_Vb.net_String_Split - Fatal编程技术网

如何在vb.net中从HTML源中提取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”:“作为开

我的问题是:我有一个程序可以获取指定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”:“
作为开始提取过程并在
”停止提取的标记,“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