如何匹配最后一个

wtoeb 2011-08-24 06:53:01
topics/cate_34/taicha/bdcs/cate_12/abc/cate_13/taicha/baidu
以cate_\d+为分隔,我想取最后一个直到结束,应该怎么做?谢谢.
有以下几种分组方式:
1.cate_34/taicha/bdcs/cate_12/abc/cate_13/taicha/baidu
2.cate_12/abc/cate_13/taicha/baidu
3.cate_13/taicha/baidu
我只想要最后一组,应该怎么做?谢谢.
我这样写,只能取到第一种,怎么办?谢谢.
(?:Cate[._-])(?<PathCateID>[^/\s.]+)/(?<Path>(?!Cate[._-]*).*)/?
...全文
72 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
hangang7403 2011-08-24
  • 打赏
  • 举报
回复
6楼的对,测试过
sxldfang 2011-08-24
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 huangwenquan123 的回复:]

C# code
List<string> list = new List<string> { "cate_34/taicha/bdcs/cate_12/abc/cate_13/taicha/baidu", "cate_12/abc/cate_13/taicha/baidu", "cate_13/taicha/baidu" };
Regex reg……
[/Quote]

+++
huangwenquan123 2011-08-24
  • 打赏
  • 举报
回复
            List<string> list = new List<string> { "cate_34/taicha/bdcs/cate_12/abc/cate_13/taicha/baidu", "cate_12/abc/cate_13/taicha/baidu", "cate_13/taicha/baidu" };
Regex reg = new Regex(@"(?i)cate_\d+(?:(?!cate_\d+).)*$");
foreach (string s in list)
Console.WriteLine(reg.Match(s).Value);
wtoeb 2011-08-24
  • 打赏
  • 举报
回复
/?(cate_\d+(?:(?!cate_\d+).)+$)
这样更好,可以匹配后面有数字的串,
蝶恋花雨 2011-08-24
  • 打赏
  • 举报
回复
正则帮不了。
wtoeb 2011-08-24
  • 打赏
  • 举报
回复
这样就可以了,
cate_\d+[^\d]+$
wtoeb 2011-08-24
  • 打赏
  • 举报
回复
/?(cate_(?<v>\d+))/?(?<x>[^\d]+)$
mathieuxiao 2011-08-24
  • 打赏
  • 举报
回复
不会,帮顶

110,534

社区成员

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

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

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