重複の可能性:
URL に一致する正規表現
文字列が与えられた場合、それが URL を表しているかどうかを知り、「なんでも」である Web サイト名を取得したいと考えています。たとえば、「http://google.com.sg」または「http://google.com.sg/」の場合、文字列「google.com.sg」を返したいとします。
Javaでこれを行うきちんとした方法はありますか?
重複の可能性:
URL に一致する正規表現
文字列が与えられた場合、それが URL を表しているかどうかを知り、「なんでも」である Web サイト名を取得したいと考えています。たとえば、「http://google.com.sg」または「http://google.com.sg/」の場合、文字列「google.com.sg」を返したいとします。
Javaでこれを行うきちんとした方法はありますか?
これを行う方法はいくつかありますが、単純な正規表現は非常にエラーが発生しやすいものです。最善の方法は、それを既存のパーサーにフィードしてから、メソッドを使用して必要なビットを引き出すことです。たとえば、
import java.net.URL;
...
final URL url = new URL("http://google.com.sg/");
final String host = url.getHost();
正規表現が必要な場合は、次のとおりです。
String foo = "http://google.com";
String bar = foo.replaceAll("^http://", "");
if (bar.length() != foo.length()) {
System.out.println("Url: " + bar);
} else {
System.out.println("Not Url: " + foo);
}