public String getContextName() {
String contextName = FacesContext.getCurrentInstance()
.getExternalContext().getRequestContextPath();
String uri = "localhost/gar/garmin-first/gar_home";
Pattern pat=Pattern.compile("/(.*?)/(.*)/");
Matcher matcher = pat.matcher(uri);
matcher.find();
System.out.println("matched"+matcher.group(1)+matcher.group(2));
if (StringUtil.isNotEmpty(contextName) &&
contextName.contains(matcher.group(1))) {
return matcher.group(2);
}
return matcher.group(1);
}
Вывод в консоли будет печататься как group(1) = gar
и group(2) = garmin-first
, но мне действительно нужно одно регулярное выражение, которое может работать в обоих случаях.Другой случай:
String uri = "localhost/garmin-first/gar_home";
В этом случае мне нужен вывод, так как group(1) = garmin-first
и group(2)
должны быть оставлены пустыми.Не могли бы вы помочь мне с регулярным выражением, которое может работать в обоих случаях, пожалуйста.