2011-07-25 51 views
0

我正在尋找在做的java以下的最佳實踐方法(可能使用Apache的百科全書,一些春天效用,或者只是普通的Java /正則表達式):檢查url是否等於或是一個子目錄?

我需要檢查,如果給定的URL模式是否等於一個給定的字符串或字符串的子目錄:

String pattern = "/myPath"; 

if(StringUtils.startsWithIgnoreCase(url, pattern) { // } 

上面(使用公共方法)適用於網址如:"../../myPath""../../myPath/""../../myPath/1/2"

的問題是,它也匹配:"../../myPathABC"。這不是所期望的行爲,因爲它不是相同的目錄或子目錄。

回答

0

如果你想使用正則表達式我會與所有具有以下的正則表達式一個正則表達式匹配走:

/^(\.\.\/)*myPath(\/|\/.*|$)/ 

它返回true:

myPath 
../../myPath 
../../myPath/ 
../myPath 
myPath/ 

,並返回false任何變種作者:

myPathABC 

或任何不是myPath。可能有一種方法可以用java命令來完成,但java有一個庫,可惜我不知道它。

哦,它會爲/myPath/工作,但我不知道,如果你想要的(你沒有說明的話),如果你想要那個匹配,以及,一個\/?myPath增加。

相關問題