2017-09-16 48 views
0

我正在使用正则表达式。即java.google.com这里的“java”是主机名,“google.com”是域名。现在我想提取从使用正则表达式从fqdn拆分主机名和域名

String fqdn = "java.google.com"; 

String hostname = "java"; 
String domain = "google.com"; 

使用正则表达式。

我试过这样

String text = "java.google.com"; 
String extensionRemoved = text.split("\\.")[0]; 

我得到的结果如Java。但我想要一些正则表达式应该给我“java”单独的字符串和“google.com”单独的字符串。

我可以使用StringTokenizer,但我不想使用StringTokenizer,因为它会影响性能如果我有从数据库1000,1,00,000条记录。谢谢,如果任何人提供有效的解决方案。

回答

1

对于这种简单的解析,indexOfsubstring会更有效率。

编辑 但是,如果你真的想要一个正则表达式,然后这个人是基本的,但做'(\ w +)。([\ w] +)“的'group(1)contains the hostname and ˋgroup(2)域。但是一些边缘案例可能不匹配。

1

试试这个:

String text = "java.google.com"; 
String domain = text.split("\\.")[0]; 
String ext = text.replace(domain, ""); 
System.out.print("Domain:"+domain); 
System.out.print("\n"); 
System.out.print("Ext:"+ext); 
1

String.split有一个变种,它允许你指定分割的最大数量:

String[] x = "java.sun.com".split("\\.", 2); 
System.out.println(x[0]); // java 
System.out.println(x[1]); // sun.com