如何在Java中获得匹配的字符串?

时间:2011-05-09 03:43:05

标签: java design-patterns

嗯..我不是java开发人员,但我正在编辑一个java插件。

所以..基本上,这个插件匹配^(/ $)|(/ cn /(.*)+$)模式并重定向到用户。

以下是该插件的代码段。

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 个答案:

答案 0 :(得分:1)

当您的第一个子模式匹配时,

matcher.group(1)/,当您的第二个子模式匹配时,matcher.group(2)/cn/whatever

你似乎不需要+和嵌套的parens。我的表达方式更简单:^(/$)|(/cn/.*$)