在asp.net C#中过滤字符串

时间:2014-09-15 08:11:22

标签: c# asp.net .net regex

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

由于

4 个答案:

答案 0 :(得分:1)

查看Uri.AbsolutePath

所以可以做到

Path.GetFileName(Request.Url.AbsolutePath)

答案 1 :(得分:0)

string str = "/test1/Pages/Request/test.aspx?id=-1";
string page = str.Substring(str.LastIndexOf('/')+1, str.IndexOf('?')-str.LastIndexOf('/')-1);

答案 2 :(得分:0)

([a-zA-Z.]+)(?=\?)

你可以使用它。只需抓住第一组。参见演示。

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

答案 3 :(得分:0)

假设您的网页全部为.aspx
(小于?= /)(?= \)\ W +的.aspx

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

---编辑---
如果你想要捕捉更多的字符,你可以修改下面表达式的粗体部分:
(?&LT; = /)。(?= \)的 [\ W \] + ASPX

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