Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用正则表达式从fqdn拆分主机名和域名_Java_Regex - Fatal编程技术网

Java 使用正则表达式从fqdn拆分主机名和域名

Java 使用正则表达式从fqdn拆分主机名和域名,java,regex,Java,Regex,我正在研究正则表达式。i、 e java.google.com这里“java”是主机名,“google.com”是域名。现在我想从中摘录 String fqdn = "java.google.com"; String hostname = "java"; String domain = "google.com"; 使用正则表达式 我试过这样做 String text = "java.google.com"; String extensionRemoved = text.split("\\."

我正在研究正则表达式。i、 e java.google.com这里“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,100000条记录,它会影响性能。如果有人能提供有效的解决方案,谢谢。

对于这种简单的解析,
indexOf
substring
将更加有效

编辑
但是如果你真的想要一个正则表达式,那么这是一个基本的正则表达式,但是要做到这一点。ˋ(\w+(.\w]+)ˋ组(1)
包含主机名,组(2)
包含域。但是一些边缘情况可能不匹配。

对于这种简单的解析,
indexOf
substring
将更有效

编辑 但是如果你真的想要一个正则表达式,那么这是一个基本的正则表达式,但是要做到这一点。ˋ(\w+(.\w]+)ˋ组(1)
包含主机名,组(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);
试试这个:

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);

注意
String.split
有一个变量,允许您指定最大拆分次数:

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

注意
String.split
有一个变量,允许您指定最大拆分次数:

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