java - 如何从Java中的字符串中提取部分域?

标签 java regex

如果我的域是 31.example.appspot.com(App Engine 在前面添加版本号),我可以从 Request 对象中检索该域,如下所示:

String domain = request.getServerName();
// domain == 31.example.appspot.com

我想要的是提取除版本号之外的所有内容,因此我最终得到两个值:

String fullDomain; // example.appspot.com
String appName;    // example

由于域名可以是以下任意内容:

1.example.appspot.com

至:

31.example.appspot.com

如何在 Java 中提取 fullDomainappName 值?

正则表达式在这里合适吗?

最佳答案

如果您始终确定这种模式,那么只需找到第一个点并从那里开始即可。

fullDomain = domain.subString(domain.indexOf('.'));

更新:在 James 和 Sean 评论之后,以下是完整的正确代码:

int dotIndex = domain.indexOf(".")+1;
fullDomain = domain.substring(dotIndex);
appName = domain.substring(dotIndex,domain.indexOf(".",dotIndex));

关于java - 如何从Java中的字符串中提取部分域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7309475/

相关文章:

java - Java 中使用 contains 不匹配字符串

正则表达式 : Validate phone number

ruby - 插入字符串并保留原​​始变量状态

java - 在 HashMap 中使用字符串数组,Java

java - PMD 选项在 Spring Tool Suite 3.9.6 中不可见

具有导出为 JAR 的简单 Web 服务器的 Java 应用程序

java - jTextField swing 中的幽灵文本

java - 文本搜索引擎中 SOLR 与 DB 和应用程序的关系

c# - 匹配一个字符串,直到它遇到一个 '('

regex - 如何使用正则表达式将下划线转换为驼峰式大小写?