从另一个URL的查询部分提取URL

本文关键字:URL 提取 查询部 另一个 | 更新日期: 2023-09-27 18:13:06

如何从这样的字符串中提取有效的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。

从另一个URL的查询部分提取URL

添加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);
    }
}

我不知道你的其他字符串看起来像什么,但如果你的'有效URL'是在第一个=和第一个&之间,你可以使用:

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

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

测试。

可以使用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];

对于您发布的字符串,您可以这样做:

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

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