2014-12-01 51 views
0

以下是我用來驗證文件路徑的OWASP正則表達式。但它沒有按預期工作。請找到下面的細節。OWASP java中文件路徑的正則表達式沒有按預期工作

file path = "^[a-zA-Z0-9:/\\\\[email protected]#$%^&{}\\[\\]()_+\\-=,.~'` ]{1,255}$"; 
Input1 = "E:\Hello\One\FilePath1\"; 
Input2 = "E:\Hello\One\1FilePath\"; 

正則表達式正則表達式的文件路徑適用於輸入1而不是輸入2。原因是在斜槓\後輸入2立即如果數字來了它沒有驗證。有人可以幫助這種模式修改。

謝謝:)

+2

使用在線測試儀接受這兩個輸入。是什麼讓你覺得它不起作用?也許問題出在你的測試代碼中。 – bmm6o 2014-12-01 18:22:57

+0

嘿謝謝你的回覆。它將在java文件中工作,如果我們直接在java文件中提供轉義序列。抱歉忘了在開始時添加更多信息。實際上,我在屬性文件中提供了這個正則表達式模式。所以當談到java文件時,它會以「^ [a-zA-Z0-9:/ \\!@#$%^&{} \ [\]()_ + \ - = ,.〜''] {1,255} $」。一個更多的信息允許,如果我把正斜槓後數字/但它不工作,如果我把數字後退病房斜線後。謝謝。 – Janardhan 2014-12-02 11:55:56

+0

您發佈的代碼沒有問題,因此您沒有發佈的代碼存在問題。請更新問題中的代碼,以便重現您所說的問題。 – bmm6o 2014-12-02 16:29:24

回答

0

我自己解決了這個問題。這裏的java代碼沒有問題。我正在使用ESAPI庫類的內置validInput()方法來驗證文件路徑。但是這種方法不允許出現問題的八進制字符。

因此,我已經單獨刪除了這個ESAPI庫類的文件路徑驗證方法。然後我添加了一個定製的方法。

相關問題