如何从像这样的字符串中提取有效的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
,这是我有效的网址。
答案 0 :(得分: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);
}
}
答案 1 :(得分:1)
我不知道您的其他字符串是什么样的,但如果您的“有效网址”介于第一个=
和第一个&
之间,则可以使用:
(?<==).*?(?=&)
它基本上会查找第一个=
,并在下一个&
之前匹配任何内容。
经过测试here。
答案 2 :(得分: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];
答案 3 :(得分:0)
在这个特殊情况下,您发布的字符串可以执行此操作:
string input = "your URL";
string newString = input.Substring(36, 22) ;
但是,如果URL的初始部分的长度发生变化,并且您想要提取的部分的长度发生变化,那么也行不通。