使用角色向前看,但仅在角色存在时使用

时间:2010-12-25 15:33:12

标签: regex

假设我有这些行:

/path-to-something/section/resource?var=name
/path-to-something/section/resource

我想使用正则表达式来捕获/ path-to-something /和?之间的文本。标志。所以对于这两种情况,我希望输出为:

section/resource

我能走得最远就是使用这个正则表达式:

(?<=/path-to-something/).+(?=\?)

但是第二种情况(URL没有?符号)失败了:

section/resource
[no match]

有没有办法在正则表达式中做这样的事情?我知道我可以在没有正则表达的情况下做到这一点,但我想知道这是否可以在正则表达式中进行。

1 个答案:

答案 0 :(得分:2)

怎么样:

(?<=/path-to-something/)[^?]+