Как получить совпадающую строку в Java? - PullRequest
0 голосов
/ 09 мая 2011

Хм .. Я не 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 / [ВСЁ] url.Как получить пустую строку при совпадении / и cn при совпадении / cn / [ВСЁ]?

Я пробовал matcher.group (), matcher.start () и matcher.end () ...

1 Ответ

1 голос
/ 09 мая 2011

matcher.group(1) равно /, когда ваш первый подшаблон соответствует, matcher.group(2) равно /cn/whatever, когда ваш второй подшаблон соответствует.

И вам, кажется, не нужны + и вложенные парены,Я бы написал ваше выражение проще: ^(/$)|(/cn/.*$)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...