La spécificité Java EE REST, JAX-RS, décrit la conversion des variables de chemin en regex, comme dans /customer/{id}
.'+' et '?' consécutivement dans une expression régulière
De JAX-RS 1.1 Spec, Page 19:
remplacer chaque variable de modèle URI avec un groupe de capture contenant l'expression régulière spécifiée ou '(? [/] +)' Si aucune expression régulière est spécifié.
L'API Java doc de java.util.regex.Pattern dit:
X? X, once or not at all
X+ X, one or more times
Alors, que signifie +?
?
Pour clarifier, une expression ungreedy est celle dans laquelle la correspondance la plus courte possible est faite, par opposition à une expression gourmande, la plus longue possible est faite. – bgw
Merci, je ne le savais pas. Mais qu'est-ce que cela signifie dans ce cas '([/] +?)'? Pour autant que je comprenne tout est lu jusqu'au prochain '/', serait-il gourmand ou non. – deamon
Dans ce cas, la partie '[/] +' serait paresseuse et essayerait d'attraper un seul caractère ('+' est au moins un) avec [^ /] *? rien ne serait pris. –