从另一个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。
添加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的初始部分的长度发生了变化,并且您想要提取的部分的长度也发生了变化,那么将无法工作