可能重复:
正则表达式匹配 URL
给定一个字符串,我想知道它是否代表一个 URL 并获取网站名称,即“随便”。例如,给定“ http://google.com.sg ”或“ http://google.com.sg/ ”,我想返回字符串“google.com.sg”。
在Java中有一种巧妙的方法吗?
可能重复:
正则表达式匹配 URL
给定一个字符串,我想知道它是否代表一个 URL 并获取网站名称,即“随便”。例如,给定“ 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);
}