如何使用模式和匹配器提取数据

问题描述 投票:0回答:1

嘿,我正在尝试将旧网址映射到新网址。喜欢-

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

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

我如何使用模式和匹配器来匹配模式并从URL中提取bugId和queueName。请帮忙。

java string url
1个回答
0
投票

[任何字符后跟?&,后跟标识符=和不能包含&作为组的值,然后是任何尾随字符:

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
}
© www.soinside.com 2019 - 2024. All rights reserved.