Java正则表达式提取域名?

时间:2014-09-17 07:22:50

标签: java regex

我需要java regex才能从字符串中提取域名。

前:

input : www.google.com  (ouput) --> google.com
    input : https://www.google.com (output) --> google.com

基本上它应该从URL中删除所有www和http。 请帮忙!

谢谢!

3 个答案:

答案 0 :(得分:0)

如果您对正则表达式感兴趣,请尝试以下方法:

urlString.replaceFirst("^(https?://)?(www\\.)?", "") 

然而,正如评论所暗示的那样,这不是一个好主意。

答案 1 :(得分:0)

.*?\.(.*?\.[a-zA-Z]+)

试试这个。看看演示。

http://regex101.com/r/jT3pG3/33

答案 2 :(得分:-1)

要实现这一点,你需要2个java类:Matcher和Pattern。

你必须建立Pattern对象并在其上调用为你提供匹配器实例的方法。

// in the beginning, import necessary classes
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexMatches
{
    public static void main( String args[] ){

      // this is the array with urls to check
      String [] urls = {"https://google.com", "www.google.com"};

      // now, let's check if strings are matching
      for (int i = 0; i < urls.length; i++) {  

          // string to be scanned to find the pattern
          String url = urls[i];
          String pattern = "google.com";

          // create a Pattern object
          Pattern p = Pattern.compile(pattern);

          // now, create Matcher object.
          Matcher m = p.matcher(url);

          // let's check if something was found
          if (m.find()) {

             System.out.println("Found value: " + url);

          } else {

             System.out.println("NO MATCH");

          }

       }

   }

}

您可以将要模式检查的所有网址添加到数组中!