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

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


试了很多次,一直得不到我要的效果,请各位大侠帮忙!!多谢 100 分
...全文
350 19 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
李小冲 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
  • 打赏
  • 举报
回复
q107770540 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

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧