用于提取URL的RegEx模式

时间:2012-03-03 17:29:06

标签: regex vb.net

我必须提取这些字符之间的所有内容:

<a href="/url?q=(text to extract whatever it is)&amp

我试过这种模式,但它不适合我:

/(?<=url\?q=).*?(?=&amp)/

我在Vb.net中编程,这是代码,但我认为问题是模式错误:

    Dim matches As MatchCollection

    matches = regex.Matches(TextBox1.Text)

    For Each Match As Match In matches

        listbox1.items.add(Match.Value)

    Next

你能帮我吗?

2 个答案:

答案 0 :(得分:2)

你的正则表达式似乎是正确的,除了斜杠(/)在表达式的开头和结尾,删除它:

Dim regex = New Regex("(?<=url\?q=).*?(?=&amp)")

它应该有用。

某些实用程序和大多数语言使用/(正斜杠)来开始和结束(取消限制或包含)其他人可能使用单引号的搜索表达式。使用System.Text.RegularExpressions.Regex,您不需要它。

答案 1 :(得分:0)

下面的正则表达式代码将从您的文本(或任何其他)中提取所有网址:

(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&amp;:/~\+#]*[\w\-\@?^=%&amp;/~\+#])?