次のようなメソッドを取得しましたが、実行しようとすると例外が発生しました。
java.util.regex.PatternSyntaxException:インデックス6 ^HKLM\の近くで予期しない内部エラーが発生しました
私の正規表現の何が問題になっているのかを見つけられる人はいますか?私がやろうとしているのは、Windowsレジストリパスである文字列をチェックし、それが私のソフトウェアでサポートされていることを確認することです。
final String SUPPRTED_REGISTRY_PATH_REGEX[] = new String[] {
"^HKLM\\",
"^HKEY_LOCAL_MACHINE\\",
"^HKCR\\",
"^HKEY_CLASSES_ROOT\\"
};
boolean isValidated = false;
// Windows registry path is case-insensitive therefore
// convert the registry path to all upper case for
// ease of comparison
String uppercaseRegistryPath = registryPath.toUpperCase();
for(int i = 0;
i < SUPPRTED_REGISTRY_PATH_REGEX.length && isValidated == false;
i++) {
if(Pattern.matches(
SUPPRTED_REGISTRY_PATH_REGEX[i], uppercaseRegistryPath)) {
isValidated = true;
}
}