Il existe un changement de comportement impliquant la correspondance de modèle dans les expressions régulières dans Java SE 17.
Auparavant, lorsqu'une ou plusieurs classes de caractères imbriquées (entre [ ]) suivaient une
intersection (& &) suivie d'une classe de caractères non imbriquée, la série de classes de caractères
imbriquées n'était pas utilisée. Dans Java SE 17, ces classes de caractères imbriquées sont désormais utilisées. Par exemple, pour les expressions
régulières suivantes :
"[A-Z&&[A-Z]0-9]" - [A-Z] n'aurait pas été utilisé.
Les indicateurs de règle appellent les appels des méthodes suivantes lorsque l'expression régulière fournie contient une intersection, suivie d'une classe de caractères imbriquée, suivie d'une classe de caractères non imbriquée :
java.util.regex.Pattern.compile(java.lang.String)java.util.regex.Pattern.compile(java.lang.String, int)java.util.regex.Pattern.matches(java.lang.String, java.lang.CharSequence)java.lang.String.matches(java.lang.String)java.lang.String.replaceAll(java.lang.String, java.lang.String)java.lang.String.replaceFirst(java.lang.String, java.lang.String)java.lang.String.split(java.lang.String)java.lang.String.split(java.lang.String, int)Pour plus d'informations sur ce changement de comportement, voir RegEx Pattern Matching Perd Character Class After Intersection (& &) Operator.