Я использовал следующее, чтобы извлечь домен из URL-адреса: (Это тестовые примеры)
String regex = "^(ww[a-zA-Z0-9-]{0,}\\.)";
ArrayList<String> cases = new ArrayList<String>();
cases.add("www.google.com");
cases.add("ww.socialrating.it");
cases.add("www-01.hopperspot.com");
cases.add("wwwsupernatural-brasil.blogspot.com");
cases.add("xtop10.net");
cases.add("zoyanailpolish.blogspot.com");
for (String t : cases) {
String res = t.replaceAll(regex, "");
}
Я могу получить следующие результаты:
google.com
hopperspot.com
socialrating.it
blogspot.com
xtop10.net
zoyanailpolish.blogspot.com
Первые четыре случая хороши. Последний не годится. Я хочу: blogspot.com
для последнего, но он дает zoyanailpolish.blogspot.com
. Что я делаю неправильно?
s/^[^.]+\.//
, я предлагаю вам это сделать. - person tchrist   schedule 28.08.2011example.com.tw
иexample.co.uk
? - person BalusC   schedule 28.08.2011co
(возможно, есть другие ccTLD, которые вы хотели бы сопоставить). Возьмите последние два или три предмета в зависимости от результата и снова соедините их в точку. - person BalusC   schedule 28.08.2011foo.bar.com
,foo.bar.co.uk
иfoo.bar.pvt.k12.wy.us
не похожи друг на друга. Как вы решите опустить толькоfoo
, но останавливаться наbar
в каждом из них, если вы получите разное количество точек? - person tchrist   schedule 28.08.2011