C#,分裂部分不清楚

时间:2014-07-01 10:04:27

标签: c#

我已经看到了一些关于这方面的话题,但我们对于我想要的东西有点不清楚,

我在C#中制作一个特殊的Web浏览器

但是,我想拆分TextBox文本

像:

Textbox1.Text =" http://google.com/lol ";

我想,

Label1.Text =" http://google.com ";

Label2.Text =" / lol ";

但是我希望它能够检测TextBox1.Text中的URL而不仅仅是google.com,每个网址

像:

[

Label1.Text = Label1.Text(" ignorefrom /");
Label2.Text = Label2.Text(" ignorefromno /");

当然,上述言论是不可能的,但这基本上就是我的意思

Anny1知道我该怎么做

可能更好的解释。

我正在制作网络浏览器,我想检测

网址:例如: http://google.com/lol

我希望标签中的第一个和第二个部分来自

所以:标签1 中的 http://google.c om label2 中的 / lol 与每个网址< / p>

我已经看到了关于此的多个主题,但这与我的案例有点不同

4 个答案:

答案 0 :(得分:1)

您应该查看.NET class Uri的文档。它具有您正在寻找的功能。

示例:

var url = new Uri("http://www.google.com/some/path/file.aspx");
Console.WriteLine(url.Host); // prints www.google.com
Console.WriteLine(url.AbsolutePath); // prints /some/path/file.aspx

此示例中使用的属性:

答案 1 :(得分:0)

这应该给出你想要的结果:

using System.Uri;

Uri uri = new Uri("http://google.com/lol");
Label1.Text = uri.AbsoluteUri;
Label2.Text = uri.PathAndQuery;

答案 2 :(得分:0)

我会使用正确的工具,在这种情况下,您可以使用Uri.TryCreate

string url = "http://google.com/lol";
Uri uri;
if (Uri.TryCreate(url, UriKind.Absolute, out uri))
{
    Textbox1.Text = uri.Scheme + Uri.SchemeDelimiter + uri.Host; 
    Label1.Text = uri.AbsolutePath;                              
}

如果您想要包含评论中提到的查询,则应使用uri.PathAndQuery。然后"http://google.com/lol?lol=1"根据需要返回/lol?lol=1

答案 3 :(得分:0)

蒂姆施密特尔

string url = "http://google.com/lol";
Uri uri;
if (Uri.TryCreate(url, UriKind.Absolute, out uri))
{
    Textbox1.Text = uri.Scheme + Uri.SchemeDelimiter + uri.Host; 
    Label1.Text = uri.AbsolutePath;                              
}

就像一个魅力:)