C'è un cambiamento di comportamento che coinvolge la corrispondenza dei modelli nelle espressioni regolari in Java SE 17.
In precedenza, quando una o più classi di caratteri nidificate (racchiuse tra []) seguivano un'intersezione (&&) erano seguite da una classe di caratteri non nidificata, la serie di classi di caratteri nidificate non è stata utilizzata. In Java SE 17, sono ora utilizzate tali classi di carattere nidificate. Ad esempio, data l'espressione regolare:
"[A-Z&&[A-Z]0-9]" - [A-Z] in precedenza non sarebbe stata utilizzata.
Gli le chiamate degli indicatori della regola dei seguenti metodi, in cui l'espressione regolare fornita contiene un'intersezione, seguita da una classe di caratteri nidificata, seguita da una classe di caratteri non nidificata:
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)Per ulteriori informazioni su questa modifica del comportamento, consultare RegEx Pattern Matching Perde classe di caratteri dopo l'operatore di intersezione (& &).