как извлечь это с помощью регулярных выражений - PullRequest
0 голосов
/ 25 января 2011

Мне нужно извлечь это

Пример:

 www.google.com
 maps.google.com
 maps.maps.google.com

Мне нужно извлечь из этого google.com.

Как я могу сделать это на Java?

Ответы [ 4 ]

1 голос
/ 25 января 2011

Извлечение известной подстроки из строки не имеет особого смысла;) Зачем вам делать

String result = address.replaceAll("^.*google.com$", "$1");

когда это равно:

String result = "google.com";

Если вам нужен тест , попробуйте:

String isGoogle = address.endsWith(".google.com");

Если вам нужна другая часть с адреса Google, это может помочь:

String googleSubDomain = address.replaceAll(".google.com", "");

(подсказка - первая строка кода - решение вашей проблемы!)

1 голос
/ 25 января 2011

Предполагая, что вы хотите получить домен верхнего уровня из имени хоста, вы можете попробовать это:

Pattern pat = Pattern.compile( ".*\\.([^.]+\\.[^.]+)" ) ;
Matcher mat = pat.matcher( "maps.google.com" ) ;
if( mat.find() ) {
    System.out.println( mat.group( 1 ) ) ;
}

, если все наоборот, и вам нужно все, кроме двух последних частей домена(в вашем примере; www, maps, and maps.maps), затем просто измените первую строку на:

Pattern pat = Pattern.compile( "(.*)\\.[^.]+\\.[^.]+" ) ;
1 голос
/ 25 января 2011

Разделить на . и выбрать последние два бита.

    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]);
0 голосов
/ 25 января 2011
 String str="www.google.com";

 try{
       System.out.println(str.substring(str.lastIndexOf(".", str.lastIndexOf(".") - 1) + 1));
  }catch(ArrayIndexOutOfBoundsException ex){
       //handle it
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...