C# 如何在ASP.NET中使用正则表达式从请求url提取文件名
我需要从请求url中提取任何只有.aspx扩展名的请求的文件名+扩展名。例如,如果请求的url为-则应返回index.aspx。如果请求的url为,则应返回空。如果请求的url为,则应返回空C# 如何在ASP.NET中使用正则表达式从请求url提取文件名,c#,asp.net,regex,C#,Asp.net,Regex,我需要从请求url中提取任何只有.aspx扩展名的请求的文件名+扩展名。例如,如果请求的url为-则应返回index.aspx。如果请求的url为,则应返回空。如果请求的url为,则应返回空 编辑:如果在url中的其他任何地方有一个aspx,那么它可能会造成实际问题。但是正确地转义并在url中查找,并获得第一个匹配可能会解决问题,因为主机名中通常没有.aspx。要仅提取以结尾的文件,请使用以下正则表达式: var r = new Regex(@"\w+\.aspx"); var match =
编辑:如果在url中的其他任何地方有一个aspx,那么它可能会造成实际问题。但是正确地转义
并在url中查找
,并获得第一个匹配可能会解决问题,因为主机名中通常没有.aspx
。要仅提取以结尾的文件,请使用以下正则表达式:
var r = new Regex(@"\w+\.aspx");
var match = r.Match(Request.RawUrl);
if (match.Success)
{
//your logic here
var filename = match.Value;
}
试试这个:
Match fileNameMatch = Regex.Match("url", @"\w+\.aspx");
string fileName = fileNameMatch.Value;
我只想把我的帽子扔进拳击场
像大多数关于StackOverflow的问题一样。。正则表达式不是答案。我是说。。这是一个答案。。但这类似于叫醒一个巨人,让它帮你压扁一只蚂蚁
System.Uri uri = new System.Uri("http://www.abcd.com/page/index.aspx?a=1&B=2'");
string fileName = Path.GetFileName(uri.LocalPath);
if (fileName.EndsWith(".aspx")) {
// this is what you want
}
如果要在uri为“”的情况下匹配
,请将转义为“pageindex.aspx”@algreat更新了我的答案,以处理这些问题和所有情况。url应该是什么样的http://forums.asp.net/t/1775283.aspx/1
return?@OscarMederos它当然应该返回1775283.aspx。我知道它返回www.aspx,但它可能适合@Siva Bathula,因为这样的URL非常具体