Regex 正则表达式中的JAX-RS URI匹配

Regex 正则表达式中的JAX-RS URI匹配,regex,jax-rs,Regex,Jax Rs,我正在尝试匹配URI中的特定路径元素。我有两种不同的URI类型: /aaa/bbb/ccc?param2=x,param2=y 以及: 我希望始终收集整个字符串,但在第二种情况下除外,当我希望收集/\u Vddd之后的所有内容时 注意:ddd可以是任何内容 顺便说一句:这在JAX-RS path语句中使用。我正在尝试使用非capturning组,但无法使其匹配。出于某种原因: /{path:?:/_V[^/]*?/.}仅在URI包含/_Vddd时匹配,并将/_Vddd作为path变量的一部分返

我正在尝试匹配URI中的特定路径元素。我有两种不同的URI类型:

/aaa/bbb/ccc?param2=x,param2=y
以及:

我希望始终收集整个字符串,但在第二种情况下除外,当我希望收集/\u Vddd之后的所有内容时

注意:ddd可以是任何内容

顺便说一句:这在JAX-RS path语句中使用。我正在尝试使用非capturning组,但无法使其匹配。出于某种原因:

/{path:?:/_V[^/]*?/.}仅在URI包含/_Vddd时匹配,并将/_Vddd作为path变量的一部分返回


有什么想法吗?

这不是非捕获组的工作方式。它们仍然包含在比赛中,另外,在非捕获组中有一个不必要的捕获组。只有lookaround被排除在匹配之外,但是Java不支持可变长度lookbehind。因此,如果您无法使用捕获组的结果并以另一种方式使用它,则不可能:?:/_V[^/]*?/.*现在您所需的路径位于捕获编号1中。然而,我不知道为什么当/_Vddd根本不存在并且我的正则表达式无法解决它时,你的不起作用
/_Vddd/aaa/bbb/ccc?param2=x,param2=y