2011-05-09 47 views
0

恩..我不是一個java開發人員,但我正在編輯一個java插件。所以..基本上,這個插件匹配^(/ $)|(/ cn /(.*)+$)模式並重定向到一個用戶。如何在Java中獲取匹配的字符串?

以下是插件的代碼片段。

if(uriPattern != null) { 
    Pattern pattern = Pattern.compile(uriPattern); 
    Matcher matcher = pattern.matcher(request.getRequestURI()); 
    matcher.find(); 
    matchURI = matcher.matches(); 


} 

if (matchURI && redirectTool.shouldRedirectRequest()) { 
    //do something 
} 

如您所見,該模式與/或/ cn/[EVERYTHING] url匹配。如何在/匹配時獲得空字符串,並在/ cn/[EVERYTHING]匹配時如何獲取cn?

我試過matcher.group(),matcher.start(),和matcher.end()...

回答

1

matcher.group(1)/當你的第一個子模式匹配,matcher.group(2)/cn/whatever當你的第二子模式匹配。

而你似乎並不需要+和嵌套parens。我會寫你的表達更簡單:^(/$)|(/cn/.*$)