如何在ASP中使用Regex从请求url中提取文件名.NET

本文关键字:url 请求 提取 NET 文件名 ASP Regex | 更新日期: 2023-09-27 17:57:47

我需要从请求url中提取任何只有.aspx扩展名的请求的文件名+扩展名。例如,如果请求的url是-http://www.abcd.com/index.aspx?a=1&B=2,那么它应该返回index.aspx。如果请求的url是http://abcd.com/products/pages/page1那么它应该返回为空。如果请求的url是http://abcd.com/images/img1.gif那么它应该返回为空。

编辑:如果url中的其他地方有aspx,那么它可能会造成实际问题。但是正确地转义.并在url中查找.,并获得第一个匹配可能会解决问题,因为主机名中通常没有.aspx

如何在ASP中使用Regex从请求url中提取文件名.NET

试试这个:

   Match fileNameMatch = Regex.Match("url", @"'w+'.aspx");
   string fileName = fileNameMatch.Value;

我只想在这里挑战一下。

像StackOverflow上的大多数问题一样。。Regex不是答案。我的意思是。。这是一个答案。。但这类似于唤醒一个巨人,让它为你压扁一只蚂蚁。

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
}

要仅提取以.aspx结尾的文件,请使用以下regex:

var r = new Regex(@"'w+'.aspx");
var match = r.Match(Request.RawUrl);
if (match.Success)
{
    //your logic here
    var filename = match.Value;
}