2

如何从这样的字符串中提取有效的 URL

h*tps://www.google.com/url?q=h*tp://www.site.net/file.doc&sa=U&ei=_YeOUc&ved=0CB&usg=AFQjCN-5OX

我想提取这部分:h*tp://www.site.net/file.doc,这是我的有效 URL。

4

4 回答 4

5

添加 System.Web.dll 程序集并使用带有静态方法的 HttpUtility 类。例子:

using System;
using System.Web;


class MainClass
{
    public static void Main (string[] args)
    {
        Uri uri = new Uri("https://www.google.com/url?q=http://www.site.net/file.doc&sa=U&ei=_YeOUc&ved=0CB&usg=AFQjCN-5OX");
        Uri doc = new Uri (HttpUtility.ParseQueryString (uri.Query).Get ("q"));
        Console.WriteLine (doc);
    }
}
于 2013-05-12T09:50:38.843 回答
1

我不知道您的其他字符串是什么样的,但如果您的“有效 URL”介于 first=和 first之间&,您可以使用:

(?<==).*?(?=&)

它基本上查找第一个=并匹配下一个之前的任何内容&

在这里测试。

于 2013-05-12T09:40:48.887 回答
1

你可以使用split函数

    string txt="https://www.google.com/url?q=http://www.site.net/file.doc&sa=U&ei=_YeOUc&ved=0CB&usg=AFQjCN-5OX";

    txt.split("?q=")[1].split("&")[0];
于 2013-05-12T09:44:53.517 回答
0

在这种特殊情况下,您可以使用您发布的字符串执行以下操作:

string input = "your URL";
string newString = input.Substring(36, 22) ;

但是,如果 URL 的初始部分的长度发生了变化,并且您想要提取的部分的长度也发生了变化,那么将无法正常工作。

于 2013-05-12T09:35:11.067 回答