2012-03-03 108 views
0

我要提取所有有此caracters之間:正則表達式來提取URL

<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 

你能幫我嗎?

+0

我在http://rubular.com/測試您的正則表達式和它的確定。 – dotoree 2012-03-03 17:35:46

回答

2

你的正則表達式是似乎除了在開頭的斜線(/)和表達的正確結束,將其刪除:

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

,它應該工作。

某些實用程序和大多數語言使用/(正斜槓)開始和結束(取消限制或包含)其他人可能使用單引號的搜索表達式。用System.Text.RegularExpressions.Regex你不需要它。下面

+0

我愛你! XD我用斜線,因爲我讀到它需要開始和結束的模式...但也許我錯了... – user1246770 2012-03-03 17:45:39

+1

@ user1246770:如果您發現此答案有幫助,然後[請務必接受它]( http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)。 – ruakh 2012-03-03 18:11:08

0

此正則表達式的代碼將提取您的文字(或任何其他)的所有URL:

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