'+'和'?' 连续使用正则表达式

dea*_*mon 1 java regex jax-rs

Java EE REST指定JAX-RS描述了路径变量到正则表达式的转换,例如/customer/{id}.

从JAX-RS 1.1规范,第19页:

将每个URI模板变量替换为包含指定正则表达式的捕获组,如果未指定正则表达式,则替换为"([/] +?)".

java.util.regex.Pattern的Java API doc说:

X?     X, once or not at all
X+     X, one or more times
Run Code Online (Sandbox Code Playgroud)

那么,意味着+?什么?

Col*_*ert 9

?在一个+或一个*不会贪婪的手段之后的权利.

例如:
(.*)f在"testftestf"中,第一组将匹配testftestf中的"
(.*?)ftestftest",第一组将匹配"test"


资源:

  • 澄清一个不合适的表达是一种可以进行最短匹配的表达式,而在一种贪婪的表达式中,表达最长的表达式. (2认同)