如何从这样的字符串中提取有效的 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”介于 first=
和 first之间&
,您可以使用:
(?<==).*?(?=&)
它基本上查找第一个=
并匹配下一个之前的任何内容&
。
在这里测试。
你可以使用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 的初始部分的长度发生了变化,并且您想要提取的部分的长度也发生了变化,那么将无法正常工作。