正则表达式中$1是什么意思?

niit_zc 2009-05-02 12:56:06

Regex regex = new Regex(@"/五金在线B2B网站/Company/Index-(\d{1,6}).html$");
Console.WriteLine(regex.ToString());
string str=regex.Replace("/五金在线B2B网站/Company/Index-18.html","~/Company/index.aspx?p_UserID=$1");
Console.WriteLine(str.ToString());

这是从url重写的程序中截取的一段。不明白p_UserID=$1的作用。
从网上查到这样一段:
另外可以用$1,$2...来引用具体的匹配内容,如
input : http://www.xxx.com/news/5/
replacement: /news.aspx?c=$2
pattern: http://(.*?)\.*xxx.com/news/(\d+)/*
结果为/news.aspx?c=5

没看明白
...全文
1096 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
mashanshan2008 2009-06-01
  • 打赏
  • 举报
回复
学习
十八道胡同 2009-05-02
  • 打赏
  • 举报
回复
等于第一个匹配项,依次类推。
dengyun_1223 2009-05-02
  • 打赏
  • 举报
回复
学习
firsthym 2009-05-02
  • 打赏
  • 举报
回复
$1,$2...里面放的是()里面匹配的值,如你这个里面放的就是(\d{1,6}),匹配一位数字1到6之间的
-过客- 2009-05-02
  • 打赏
  • 举报
回复
呵呵,慕白兄好久不见

由于工作的原因,我目前只能晚上和节假日出没了= =!

倒是慕白兄这一年多似乎来得比较少了
cpp2017 2009-05-02
  • 打赏
  • 举报
回复
过客又见过客
-过客- 2009-05-02
  • 打赏
  • 举报
回复
$1,$2是对捕获组捕获结果的引用

至于捕获组,意义就是把匹配到的内容捕获到一个组里,以备后续引用,简单的可以认为(…)就是捕获组,当然括号是可以嵌套的,((…)…),那么捕获组的编号就是以左括弧出现的顺序,从左向右编号

但是注意(?…)这种形式的,除(?<name>…)命名捕获组外,其余的不是捕获组
plglenn 2009-05-02
  • 打赏
  • 举报
回复
楼上正解
myjidian 2009-05-02
  • 打赏
  • 举报
回复
替换第一个匹配项

62,267

社区成员

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

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

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

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