W środowisku Java SE 17 zmienił się sposób dopasowywania wzorca w wyrażeniach regularnych.
Dotychczas, gdy co najmniej jedna zagnieżdżona klasa znaków (w nawiasach []), po której znajdował się operator części wspólnej (&&), a następnie niezagnieżdżona klasa znaków, szereg zagnieżdżonych klas znaków nie był używany. W środowisku Java SE 17 te zagnieżdżone klasy znaków są teraz używane. Na przykład w wyrażeniu regularnym:
"[A-Z&&[A-Z]0-9]" klasa [A-Z] dotychczas nie była używana.
Reguła powoduje oznaczenie flagą wywołań następujących metod, w których wyrażenie regularne zawiera część wspólną i następującą po niej zagnieżdżoną klasę znaków, a następnie niezagnieżdżoną klasę znaków:
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)Więcej informacji na temat tej zmiany zachowania można znaleźć w temacie RegEx Pattern Matching Traci Character Class After Skrzyżowanie (& &) Operator.