使用正则表达式

时间:2017-09-16 12:26:04

标签: java regex

我正在研究正则表达式。即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条记录。谢谢,如果有人为此提供有效的解决方案。

3 个答案:

答案 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)

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

修改 但是,如果你真的想要一个正则表达式,那么这个是基本的但是做'(\ 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