2011-09-28 26 views
0
字符串

我有以下的列值在我的表提取HTTP的連結(http://)在VB.NET

的樣本值:

  1. 退房ABC組博客文章XYZ今天! '加入美國農業部,敦促該縣幫助爲XYZ縣創造新的就業機會和經濟機會。 http://starabcnet.com/news/science/environment/article_4b3d2f7e-96c6-5007-a036-b4613250755e.html

我想有具有鏈接和內容分開的兩個變量 - 例如:

  1. VAR1 =查看關於XYZ今天ABC組博客文章!
    VAR2 = http://blog.saedg.org/

  2. VAR1 =加入ABC敦促全縣幫助XYZCounty創造新的就業機會和經濟機會
    VAR2 = http://starabcnet.com/news/science/environment/article_4b3d2f7e-96c6-5007-a036-b4613250755e.html

我想它可以通過字符串funcions完成或正則表達式。

+1

請問URL始終遵循字符串的其餘部分,是值內的最後一件事? –

+1

aniket,請在您的其他問題中選中幫助您的答案左側的複選標記,以接受其他問題的答案。 「0%接受標記」是關閉潛在的幫手。另外,不要忘記* upvote *有用的答案。 –

+0

同意,如果您接受並提供有用答案,您將獲得更多幫助。無論如何,我已經給你指出了正確的方向...... –

回答

0

您可以將列分成兩個不同的列嗎?例如,「消息」和「鏈接」。

如果你不能這樣做,假設Http總是在字符串的末尾,並且在字符串中沒有對HTTP://的其他引用,那麼可以在「HTTP://」之後獲取字符串。

查看VB.NET中字符串的IndexOf和Substring方法。

像這樣的東西(我沒有測試):

string url = var.SubString(var.IndexOf("http")) 
+0

HTTP始終位於String的末尾。當我們有子串時,我們需要指定長度。那是問題出現的地方 –

+0

不,你不知道。如果不指定長度,則結果將是直到字符串結尾的起點。使用這個:Public Function Substring(ByVal startIndex As Integer)As String –

1

試試這個:

' This is the regex that is used to get the addresses 
Public Shared URL As New Regex("(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])", RegexOptions.Compiled) 

' URL.Matches returns a collection of results that you can iterate through eg: 
for each ele in URL.Matches("INPUT STRING") 
    ' do something with each link that you get 
    ' like removing them from the input string 
next 
+0

你好, 我想將URL和String部分存儲在單獨的變量中。 所以我在下一個循環中執行拆分操作right –

+0

我會執行'String.Remove'並從主字符串中刪除'ele'變量。然後你可以執行一個'String.Concat'來將它附加到字符串的末尾。 –