Regulärer Ausdruck kann nicht zugeordnet werden - java.lang.IllegalArgumentException: Die Anzahl der Erfassungsgruppen im Mustersegment

In meinem Controller ist folgende Methode definiert:

@RequestMapping(value = "/ajax/comments/post/{contentId:([apv]|ad)\\d+}")
    public @ResponseBody
    ActionResult handlePostCommentRequest(HttpServletRequest request, Model model,
            @PathVariable("contentId") String assetId,
            @RequestParam(value = "nickName", required = false, defaultValue = "Anonyymi") String nickName,
            @RequestParam(value = "text", required = false, defaultValue = "") String text,
            @RequestParam(value = "createThread", required = false, defaultValue = "false") String createThread) {
            // some code...
}

Wenn ich jedoch die folgende HTTP-Anfrage mache - / ajax / comments / post / ad1374659405664, erhalte ich eine Ausnahme:

org.springframework.web.util.NestedServletException: Anforderungsverarbeitung fehlgeschlagen; verschachtelte Ausnahme ist java.lang.IllegalArgumentException: Die Anzahl der Erfassungsgruppen im Mustersegment (([apv] | ad) \ d +) stimmt nicht mit der Anzahl der von ihm definierten URI-Vorlagenvariablen überein. Dies kann auftreten, wenn Erfassungsgruppen in verwendet werden ein regulärer Ausdruck für eine URI-Vorlage. Verwenden Sie stattdessen nicht erfassende Gruppen.

Google liefert nicht so viele Ergebnisse und es ist komisch, denn wenn ich die Regex überprüfe([vpa]|ad)\d+ imhttp://regexpal.com/ es passt alles richtig. Was mache ich falsch?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage