我正在研究正则表达式。即java.google.com here" java"是主机名和" google.com"是域名。现在我想从
中提取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,因为它会影响性能如果我有来自db的1000,1,00,000条记录。谢谢,如果有人为此提供有效的解决方案。
答案 0 :(得分:2)
试试这个:
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 :(得分:1)
对于这种简单的解析,indexOf
和substring
会更有效。
修改强>
但是,如果你真的想要一个正则表达式,那么这个是基本的但是做'(\ w +)。([。\ w] +)''group(1)contains the hostname and ˋgroup(2)
域。但是一些边缘情况可能不匹配。
答案 2 :(得分:1)
注意String.split
有一个变体,允许您指定最大分割数:
String[] x = "java.sun.com".split("\\.", 2);
System.out.println(x[0]); // java
System.out.println(x[1]); // sun.com