Как извлечь данные с помощью шаблона и сопоставления - PullRequest
0 голосов
/ 05 мая 2020

Привет, я пытаюсь сопоставить старые URL-адреса с новым URL-адресом. Как -

/oldapp/viewReview.do?action=show_references&bugId=xy12&queueName=OLLD-CodeReviews

до - newapp/review/reference?bugId=xy12&queueName=OLLD-CodeReviews

Как я могу использовать Pattern и Matcher для сопоставления с шаблоном и извлечения bugId и queueName из URL. пожалуйста помоги.

1 Ответ

1 голос
/ 05 мая 2020

Любые символы, за которыми следует ? или &, за которыми следует идентификатор, =, и значение, которое не может содержать & как группу, а затем любые завершающие символы:

Pattern bugidp = Pattern.compile(".*[?&]bugId=([^&]+).*");
Pattern queuep = Pattern.compile(".*[?&]queueName=([^&]+).*");
Matcher bugidm = bugidp.matcher(url);
Matcher queuem = queuep.matcher(url);
if (bugid.matches() && queuem.matches()) {
    String bugid = bugidm.group(1);
    String qname = queuem.group(1);
    String newrl = String.format("newapp/review/reference?bugId=%s&queueName=%s",
            bugid, qname);
} else {
    // not found
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...