C# 获取最后两个文件夹';使用C从URL中选择s名称#
我有一个URL,我需要从URL下方的“business”之后和页面名称之前获取名称,即“paradise villas little.aspx” 我不明白我怎么能得到这个。我尝试了RawUrl,但它获取了完整的。请帮我怎么做C# 获取最后两个文件夹';使用C从URL中选择s名称#,c#,asp.net,url,C#,Asp.net,Url,我有一个URL,我需要从URL下方的“business”之后和页面名称之前获取名称,即“paradise villas little.aspx” 我不明白我怎么能得到这个。我尝试了RawUrl,但它获取了完整的。请帮我怎么做 更新:这是一种URL,我需要动态检查它。您必须使用内置的字符串方法。最好是使用字符串拆分 String url = "http://test.com/anc/bussiness/accommo/resort/paradise-villas-little.aspx"; St
更新:这是一种URL,我需要动态检查它。您必须使用内置的字符串方法。最好是使用字符串拆分
String url = "http://test.com/anc/bussiness/accommo/resort/paradise-villas-little.aspx";
String[] url_parts = url.Split('/'); //Now you have all the parts of the URL all folders and page. Access the folder names from string array.
希望这有帮助您可以创建一个小助手,并从它的
Uri
段
解析URL:
public static class Helper
{
public static IEnumerable<String> ExtractSegments(this Uri uri, String exclusiveStart)
{
bool startFound = false;
foreach (var seg in uri.Segments.Select(i => i.Replace(@"/","")))
{
if (startFound == false)
{
if (seg == exclusiveStart)
startFound = true;
}
else
{
if (!seg.Contains("."))
yield return seg;
}
}
}
}
然后,
found
包含“accommo”和“resort”,此方法可扩展到任何URL长度,末尾有或没有文件名。此实现中没有复杂的内容,只有常规的字符串操作:
string url = "http://test.com/anc/bussiness/accommo/resort/paradise-villas-little.aspx";
string startAfter = "business";
string pageName = "paradise-villas-little.aspx";
char delimiter = '/'; //not platform specific
var from = url.IndexOf(startAfter) + startAfter.Length + 1;
var to = url.Length - from - pageName.Length - 1;
var strings = url.Substring(from, to).Split(delimiter);
您可能需要添加验证。String.IndexOf或regex?@VMAtm URL是动态的,我需要获取“business”和“PageName”之间的所有内容
string url = "http://test.com/anc/bussiness/accommo/resort/paradise-villas-little.aspx";
string startAfter = "business";
string pageName = "paradise-villas-little.aspx";
char delimiter = '/'; //not platform specific
var from = url.IndexOf(startAfter) + startAfter.Length + 1;
var to = url.Length - from - pageName.Length - 1;
var strings = url.Substring(from, to).Split(delimiter);