• 全部
  • .NET Framework
  • ASP
  • Web Services
  • .NET互联网桌面应用
  • VB
  • 图表区
  • 分析与设计
  • 组件/控件开发
  • AppLauncher
  • 问答

如何利用正则表达式取得形如 Xheditor/NewsDetail.aspx?id=200 号后面的数字 200

tiger8000 2015-01-30 09:27:13
因为特殊需要,如何取得字符串 形如 : Xheditor/NewsDetail.aspx?id=200 后面的数字 200


试了很多次,一直得不到我要的效果,请各位大侠帮忙!!多谢 100 分
...全文
277 点赞 收藏 19
写回复
19 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
李小冲 2015-02-08
直接先取出=的位置,然后截取啊
回复
lixin2732r 2015-02-03
indexof也行吧
回复
joyhen 2015-01-30
回复
joyhen 2015-01-30
回复
insus 2015-01-30
sp1234 提供的方法HttpUtility.ParseQueryString(),它实际就是做字符串分割:
源代码是这样子:
回复
by_封爱 2015-01-30

string value=xxxxxx.Split('=')[1];
结贴
回复
joyhen 2015-01-30
回复
兔子党-督察 2015-01-30
(?i)(?<=\bid=\s*)\d+
回复
insus 2015-01-30
如果字符串中只有一个等号(=),可以尝试使用字符串分割split,
回复
asp.net 下有个Server类,里面有你想要的属性
回复
tiger8000 2015-01-30
谢谢大家,不过,大家可能都误解我的意思了,我只是想要某变量字符串 最后 = 等号后的数字, 跟 Request.QueryString["id"] 半毛钱关系 都没有,大家想多了。可能有些人确实算得上大牛,我也一直佩服他,但是今天完全是所问非所答啊,直接就把问题考虑复杂了 我重说一下 在 c# 后台代码中如何取得一变量字符串 iekdiidkekdieodk=325 = 最后的等号后面的变量数字 325
回复
如果是技术经理招聘时出了这个题,是考察你是否了解“url参数”的知识背景,这才是关键!而你写了一个正则,那么可能你最多只能得到30%的肯定,而丢掉70%的分数。 例如,技术经理肯定会把问题 Xheditor/NewsDetail.aspx?id=200 立刻改为 Xheditor/NewsDetail.aspx?is=a+b&id=200 要你解析,然后考察你是否知道url参数is的值里边到底有没有+号。 而纠结正则的人则往往是因为缺乏这些成熟的解析框架的概念,给出的答案根本不符合招聘人员要求你表现出来的“背景知识”,虽然你解决了眼前的问题,但是其实人家心里“直摇头”,心里知道这种不考虑背景知识的人写的代码一旦上线那肯定是漏洞百出的(比如就分不清楚上述参数is中到底有没有+号的问题)。 如果你现在正好是学习相关知识的时候,你是从中学习url参数知识?还是学习正则?自己谨慎地掂量一下吧!
回复
如果你自己的原始数据本来就有域名,那么就不需要拼一个临时的域名a。这是你设计“输入数据”时要注意的。仅仅输入一个 Xheditor/NewsDetail.aspx?id=200 是不完善的,应该保存前边的协议(http://)和域名部分。
回复
.net是这样解析 QueryString 的:
var s = "Xheditor/NewsDetail.aspx?id=200&is=%e4%b8%ad%e5%9b%bd+%e4%ba%ba%e6%b0%91+%e5%be%88%e8%a1%8c";
var uri = new Uri("http://a/" + s);   //随便拼一个域名a,域名不影响参数解析
var q = HttpUtility.ParseQueryString(uri.Query);
var id = q["id"];
var Is = q["is"];
使用正规类库、成熟测试的解析工具,那些是产品级的,不要乱七八糟用正则。
回复
blue_apple2006 2015-01-30
(?<=id=)\d+
回复
踏平扶桑 2015-01-30
(?is)(?<a>(.*=(?<text>(?:(\d.*).))))
凑合用,等大牛给你写出来更好的正则。
回复
-烟花雨季 2015-01-30
为什么要用正则取呢? 后台页面用Request.QueryString["id"]就能取到了啊
回复
tiger8000 2015-01-30
就是取得 = 等于号后面的数字,数字是变量,不确定是几位
回复
小蜗牛1 2015-01-30
引用 8 楼 tiger8000 的回复:
谢谢大家,不过,大家可能都误解我的意思了,我只是想要某变量字符串 最后 = 等号后的数字, 跟 Request.QueryString["id"] 半毛钱关系 都没有,大家想多了。可能有些人确实算得上大牛,我也一直佩服他,但是今天完全是所问非所答啊,直接就把问题考虑复杂了 我重说一下 在 c# 后台代码中如何取得一变量字符串 iekdiidkekdieodk=325 = 最后的等号后面的变量数字 325
方法如下: string str="idsdfsdlfsdfsdf=325"; string str2=str.Substring(str.LastIndexOf("=")+1); //str2的值就是325
回复
相关推荐
发帖
.NET技术社区
创建于2007-09-28

5.8w+

社区成员

.NET技术交流专区
申请成为版主
帖子事件
创建了帖子
2015-01-30 09:27
社区公告
暂无公告