一个正则表达式问题,谁能解决?马上给份

haorenr 2011-08-21 09:22:19
C#中有一正则表达式:


Regex rx = new Regex(@"/news/(?<yue>\d+)/(?<nian>\d+)/show-100.aspx");


这个表达式里有两个Group

第一个是:(?<yue>\d+)
第二个是:(?<nian>\d+)

我通过什么方能得到上面第一个Group和第二个Group,就是上面红色部分内容?
...全文
89 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
huangwenquan123 2011-08-21
  • 打赏
  • 举报
回复
喔 是要得到那两个字符串,这样?

string str = @"/news/(?<yue>\d+)/(?<nian>\d+)/show-100.aspx";
Regex reg = new Regex(@"(?i)\(\?[^\)]+\)");
foreach (Match m in reg.Matches(str))
Console.WriteLine(m.Value);
/*
(?<yue>\d+)
(?<nian>\d+)
*/
haorenr 2011-08-21
  • 打赏
  • 举报
回复
就是动态获这个Group的正则式,而不是匹配到的内容
-过客- 2011-08-21
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 haorenr 的回复:]
我要的结果是返回:(?<yue>\d+) 和:(?<nian>\d+)
而不是匹配后的内容,不知道明白没有
[/Quote]

我明白,不过这有什么意义?
q107770540 2011-08-21
  • 打赏
  • 举报
回复
\(\?[^)]+?\)
haorenr 2011-08-21
  • 打赏
  • 举报
回复
我要的结果是返回:(?<yue>\d+) 和:(?<nian>\d+)
而不是匹配后的内容,不知道明白没有
q107770540 2011-08-21
  • 打赏
  • 举报
回复
既然使用了命名捕获组
那就根据捕获组名称去获取值
rx.Match("").Groups["组名称"].Value
huangwenquan123 2011-08-21
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 haorenr 的回复:]
错了,你这是匹配到的内容

我要的是:(?<yue>\d+) 和:(?<nian>\d+)
[/Quote]不明白什么意思。
huangwenquan123 2011-08-21
  • 打赏
  • 举报
回复
少个了s

foreach (Match m in Regex.Matches(str))
{
m.Groups["yue"].Value;
m.Groups["nian"].Value;

}
haorenr 2011-08-21
  • 打赏
  • 举报
回复
错了,你这是匹配到的内容

我要的是:(?<yue>\d+) 和:(?<nian>\d+)

huangwenquan123 2011-08-21
  • 打赏
  • 举报
回复
foreach(Match m in rx.Matches(youstring))
{
m.Group["yue"].Value
}

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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