首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >特定url模式的正则表达式

特定url模式的正则表达式
EN

Stack Overflow用户
提问于 2009-09-07 16:41:16
回答 4查看 2.7K关注 0票数 1

在C#中,如何捕获URL中的整数值,如:

代码语言:javascript
运行
复制
/someBlah/a/3434/b/232/999.aspx

我需要从上面的url中获取999的值。url中必须包含/someBlah/。所有其他值,如a/3434/b/232/,可以是任何字符/数字。

我有“/”的转义吗?

EN

回答 4

Stack Overflow用户

发布于 2009-09-07 16:43:12

请尝试以下操作

代码语言:javascript
运行
复制
var match = Regex.Match(url,"^http://.*someblah.*\/(\w+).aspx$");
if ( match.Success ) {
  string name = match.Groups[1].Value;
}

您没有指定哪些名称可以出现在ASPX文件的前面。我采用了一种简单的方法,即使用匹配字母和数字的\w正则表达式字符。您可以根据需要对其进行修改以包括其他项目。

票数 4
EN

Stack Overflow用户

发布于 2009-09-07 16:56:32

您可以有效地获得不带扩展名的文件名。

尽管您特别要求使用正则表达式,但除非您处于真正需要使用正则表达式的场景中,否则我建议您使用System.IO.Path.GetFileNameWithoutExtension:

代码语言:javascript
运行
复制
Path.GetFileNameWithoutExtension(Context.Request.FilePath)
票数 3
EN

Stack Overflow用户

发布于 2009-09-07 16:47:36

代码语言:javascript
运行
复制
^(?:.+/)*(?:.+)?/someBlah/(?:.+/)*(.+)\.aspx$

这有点详尽,但它可以处理这样的场景: /someBlah/不一定要在字符串的开头。

运算符表示一个非捕获组,您的RegEx版本可能支持也可能不支持。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1390145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档