拆分并找到具体文字?

时间:2013-07-20 18:54:00

标签: vb.net

好吧所以我做了一个HTTPWEBREQUEST并且我已经在richtextbox中显示了结果的来源,现在说我在richtextbox中有这个

<p>Short URL: <code><a href="http://URL.me/u/eywnp">http://URL.me/u/eywnp</a></code></p>

我怎样才能得到“http://URL.me/u/eywnp”我试过分裂但没有用,猜猜我做错了?

注意每次都会有不同的网址

2 个答案:

答案 0 :(得分:4)

Split不适合这项工作。这将导致一段相当复杂的代码非常脆弱(意味着只要输入中出现最轻微的变化,它就会中断)。

对于一个功能强大,编写良好的解决方案,您需要正确解析HTML。幸运的是,存在固定的解决方案:The HtmlAgilityPack library

Dim doc As New HtmlDocument()
doc.LoadHtml(yourCode)
Dim result = doc.DocumentElement.SelectNodes("//a[@href]")(0)("href")

这里唯一复杂的部分是字符串"//a[@href]"。这是一个XPath字符串。 XPath字符串是一种迷你语言,用于处理HTML或XML文档中的元素。它们在概念上类似于文件路径(如C:\Users\foo\Documents\file.txt),但语法略有不同。

XPath只选择文档中具有<a>属性的所有href元素。然后,您可以抓取该集合中的第一个并检索href属性的值。

答案 1 :(得分:2)

感谢您的帮助,我找到了解决方案并使用了

 Dim iStartIndex, iEndIndex As Integer
        With RichTextBox1.Text
            iStartIndex = .IndexOf("<p>Short URL: <code><a href=") + 29
            iEndIndex = .IndexOf(""">", iStartIndex)
            Clipboard.SetText(.Substring(iStartIndex, iEndIndex - iStartIndex))

        End With
到目前为止

完美无缺