Любые символы, за которыми следует ?
или &
, за которыми следует идентификатор, =
, и значение, которое не может содержать &
как группу, а затем любые завершающие символы:
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
}