мне нужно извлечь этоткак извлечь это с помощью регулярных выражений
Пример:
www.google.com
maps.google.com
maps.maps.google.com
мне нужно extraact google.com
от этого.
Как это сделать на Java?
мне нужно извлечь этоткак извлечь это с помощью регулярных выражений
Пример:
www.google.com
maps.google.com
maps.maps.google.com
мне нужно extraact google.com
от этого.
Как это сделать на Java?
String str="www.google.com";
try{
System.out.println(str.substring(str.lastIndexOf(".", str.lastIndexOf(".") - 1) + 1));
}catch(ArrayIndexOutOfBoundsException ex){
//handle it
}
Предполагая, что вы хотите получить домен верхнего уровня из имени хоста, вы можете попробовать это:
Pattern pat = Pattern.compile(".*\\.([^.]+\\.[^.]+)") ;
Matcher mat = pat.matcher("maps.google.com") ;
if(mat.find()) {
System.out.println(mat.group(1)) ;
}
, если это наоборот, и вы хотите все, исключая последние 2 части домена (в вашем примере: www, maps, and maps.maps
), затем просто измените первую строку на:
Pattern pat = Pattern.compile("(.*)\\.[^.]+\\.[^.]+") ;
Разделить на .
и выбрать последние два бита.
String s = "maps.google.com";
String[] arr = s.split("\\.");
//should check the size of arr here
System.out.println(arr[arr.length-2] + '.' + arr[arr.length-1]);
Распаковка известная подстроку из строки не имеет смысла;) Почему бы вам сделать
String result = address.replaceAll("^.*google.com$", "$1");
при этом равна:
String result = "google.com";
Если вы необходимо тест, попробуйте:
String isGoogle = address.endsWith(".google.com");
Если вам нужна другая часть от адреса Google, это может помочь: (! Намек - первая строка кода представляет собой решение для вашей проблемы)
String googleSubDomain = address.replaceAll(".google.com", "");
ли вам хотите извлечь 'google.com' или первые два уровня имени домена? – arnaud576875