2017-09-16 79 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