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

发布于 2024-11-05 16:46:47 字数 576 浏览 0 评论 0原文

嗯..我不是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()...

Um..I'm not a java developer, but I'm editing a java plugin.

So.. basically, this plugin matches ^(/$)|(/cn/(.*)+$) pattern and redirect to a user.

The following is code snippet from the plugin.

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
}

as you see, the pattern matches either / or /cn/[EVERYTHING] url. How do I get empty string when / is matched and cn when /cn/[EVERYTHING] is matched?

I tried matcher.group(), matcher.start(), and matcher.end()...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

ˇ宁静的妩媚 2024-11-12 16:46:47

当您的第一个子模式匹配时, matcher.group(1)/matcher.group(2)/cn/whatever< /code> 当你的第二个子模式匹配时。

而且您似乎不需要 + 和嵌套括号。我会把你的表达式写得更简单: ^(/$)|(/cn/.*$)

matcher.group(1) is / when your first subpattern matches, matcher.group(2) is /cn/whatever when your second subpattern matches.

And you don't seem to need the + and nested parens. I'd write your expression simpler: ^(/$)|(/cn/.*$)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文