【发布时间】:2012-10-03 23:50:32
【问题描述】:
我正在尝试以
的形式从 url 中提取 id 号http://www.domain.com/some-slug-here/person/237570
http://www.domain.com/person/237570
这些网址中的任何一个也可以有参数
http://www.domain.com/some-slug-here/person/237570?q=some+search+string
http://www.domain.com/person/237570?q=some+search+string
我尝试使用以下表达式从上述 url 中捕获 '237570' 的 id 值,但每一种都可以,但在所有四种 url 场景中都有效。
(?<=person\/)(.*)(?=\?)
(?<=person\/)(.*)(?=\?|\z)
(?<=person\/)(.*)(?=\??*)
我看到的是它正在获取 237570 但包括 ?以及 url 中紧随其后的字符。当您点击 ?、/ 或字符串末尾时,我怎么能说停止捕获?
【问题讨论】:
-
感谢 d3t0n4t0 和 m.buettner - 我应该包括 id 可以是字母数字,例如 /person/35004902B839ABA2 我将
(.*)更改为(\w{1,}),效果很好!