【发布时间】:2012-04-22 22:49:16
【问题描述】:
鉴于这些网址:
1: http://site/page-name-one-123/
2: http://site/page-name-set2/
3: http://site/set20
我写了这个表达式将应用于最后一个 url 段:
(?(?<=set[\d])([\d]+)|([^/]+))
我想要做的是仅当 url 段以 'set' 开头并且紧随其后的数字时才捕获后面跟着 'set' 的每个数字;否则我想使用整个段(不包括斜线)。
当我编写这个正则表达式时,它匹配任何不是“/”的字符。我认为我在测试语句中做错了什么。 有人能指点我吗?
谢谢
更新 感谢Josh 输入,我玩了一会儿,发现这个更适合我的需求:
set-(?P<number>[0-9]+)|(?P<segment>[^/]+)
【问题讨论】:
标签: regex url-rewriting