2011-09-28 27 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'来将它附加到字符串的末尾。 –