對於DB2示例授予如下所示。使用模式和匹配器類的java中的模式匹配授權語句
grant insert,update,delete on ABC.TABLE_NAME to group DACT_RW, group DACT_RW_BATCH1
我想使用類似建立一個正則表達式模式:
Pattern.compile("[g|G][r|R][a|A][n|N][t|T][ \\t\\n\\x0B\\f\\r]+[i|I][n|N][s|S][e|E][r|R][t|T][ \\t\\n\\x0B\\f\\r]*[,][ \\t\\n\\x0B\\f\\r]*[u|U][p|P][d|D][a|A][t|T][e|E][ \\t\\n\\x0B\\f\\r]*[,][ \\t\\n\\x0B\\f\\r]*[d|D][e|E][l|L][e|E][t|T][e|E][ \\t\\n\\x0B\\f\\r]+[o|O][n|N][ \\t\\n\\x0B\\f\\r]+" + eodAppendedDbObjectName + "[ \\t\\n\\x0B\\f\\r]+[t|T][o|O][ \\t\\n\\x0B\\f\\r]+[g|G][r|R][o|O][u|U][p|P][ \\t\\n\\x0B\\f\\r]+DACT_RW[ \\t\\n\\x0B\\f\\r]*[,][g|G][r|R][o|O][u|U][p|P][ \\t\\n\\x0B\\f\\r]+DACT_RW_BATCH1$");
但不知何故,即使我指定了正確的授權,它是沒有得到匹配。
你能提出上面的模式編譯有什麼問題嗎?或者建議更好的方法來匹配java中的模式。
如果使用Pattern.compile(patternStr,Pattern.CASE_INSENSITIVE)你並不需要檢查所有大寫/小寫組合和你的模式變得不那麼複雜 –
'[G | G]'匹配一個'g','''',''G'(是的,也是''''char!)。在角色類中,「正常」元字符沒有「特殊權力」。 –
@ Stefan Neubert: 我瞭解Pattern.CASE_INSENSITIVE選項。但是我不能用它來匹配我的模式,因爲聲明中的幾個詞是區分大小寫的。 – user1587504