在 Java SE 17 中,正規表示式中存在涉及型樣比對的行為變更。先前,如果後接交集 (&&) 的一個以上巢狀字元類別(以 [] 括住)後接非巢狀字元類別,則不使用這一系列的巢狀字元類別。在 Java SE 17 中,現在會使用這些巢狀字元類別。例如,假設正規表示式如下:
"[A-Z&&[A-Z]0-9]" - 先前不會使用 [A-Z]。
此規則會標示其提供的正規表示式包含交集,且依次後接巢狀字元類別及非巢狀字元類別的下列方法之呼叫:
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)如需此行為變更的相關資訊,請參閱正規表示式型樣比對會遺失交集 (&&) 運算子之後的字元類別。