【问题标题】:Filter string in asp.net C#在asp.net C#中过滤字符串
【发布时间】:2014-09-15 08:11:22
【问题描述】:

我是 asp.net c# 开发的新手,我只需要从这个字符串“/test1/Pages/Request/test.aspx?id=-1”中获取“test.aspx”部分。如果有的话请帮助我一个知道更好的方法,我检查了一些正则表达式方法,但我仍然没有正确的解决方案。

谢谢

【问题讨论】:

  • 您是否偶然在test.aspx 页面中需要它?换句话说,您想要当前请求页面的名称吗?
  • 是的,我需要获取当前请求页面名称,我创建基本页面并从基本页面继承其他页面并获取请求 URL 实际要求是我只想显示请求页面名称。
  • 只获取当前页面名称:stackoverflow.com/a/1833313/72746
  • 它的工作非常感谢:)

标签: c# asp.net .net regex


【解决方案1】:

看看Uri.AbsolutePath

可以这样

Path.GetFileName(Request.Url.AbsolutePath)

【讨论】:

    【解决方案2】:
    string str = "/test1/Pages/Request/test.aspx?id=-1";
    string page = str.Substring(str.LastIndexOf('/')+1, str.IndexOf('?')-str.LastIndexOf('/')-1);
    

    【讨论】:

    • 你需要这样做吗?
    【解决方案3】:
    ([a-zA-Z.]+)(?=\?)
    

    你可以用这个。抢第一组。看演示。

    http://regex101.com/r/jT3pG3/2

    【讨论】:

      【解决方案4】:

      假设你的页面都是.aspx:
      (?

      在 C# 中使用:
      @"(?<=/)\w+.aspx(?=\?)"

      ---编辑---
      如果想捕捉更多的字符,可以修改下面表达式的粗体部分:
      (?[\w\.]+.aspx(?=\?)

      第二个正则表达式也将匹配.aspx之前部分中的点。

      【讨论】:

        猜你喜欢
        • 2011-12-01
        • 1970-01-01
        • 2011-04-25
        • 1970-01-01
        • 1970-01-01
        • 2017-12-01
        • 2020-11-13
        • 2013-04-13
        • 1970-01-01
        相关资源
        最近更新 更多