我得到了一個如下所示的方法,當我嘗試運行它時,出現異常。Java中的PatternSyntaxException(匹配Windows註冊表路徑)
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;
}
}
是的,它現在工作!謝謝 但我想我已經逃脫了我的反斜槓。第一個\是搜索模式,第二個\是轉義字符。什麼是兩個額外的反斜槓是什麼? – beyonddc 2013-03-26 15:25:48
我已添加更新。看到文檔也:) – Reimeus 2013-03-26 15:35:54