Java正则表达式replaceAll提取URL中的mydemo主机名
提取URL中的
mydemo片段:Java replaceAll正则方案 嘿,这事儿好办!针对你的URL https://mydemo.company/pages/pag1,我们可以用Java的replaceAll配合正则表达式,精准提取出mydemo部分。下面给你两种靠谱的实现思路:
方案1:精确匹配域名后缀(推荐,更安全)
如果你的URL后缀固定是.company,用这个正则最稳妥,避免误匹配其他结构的URL:
String url = "https://mydemo.company/pages/pag1"; // 正则表达式:锚定开头,捕获第一个点前的内容,匹配后续所有部分 String regex = "^https://([^.]+)\\.company.*"; String extractedSegment = url.replaceAll(regex, "$1"); System.out.println(extractedSegment); // 输出: mydemo
正则拆解:
^https://:锚定URL开头的固定协议部分,确保我们从正确位置开始匹配([^.]+):捕获组1,匹配所有非.的字符(也就是我们要的mydemo)\\.company.*:匹配.company后缀以及之后的所有内容(这部分会被替换为空)$1:在替换时引用捕获组1的内容,保留我们需要的片段
方案2:通用提取(适配任意域名后缀)
如果你的URL后缀不固定,只是想提取https://之后第一个.之前的内容,用这个更通用的正则:
String url = "https://mydemo.company/pages/pag1"; String regex = "^https://([^.]+).*"; String extractedSegment = url.replaceAll(regex, "$1"); System.out.println(extractedSegment); // 输出: mydemo
正则拆解:
^https://:同样锚定开头的协议部分([^.]+):捕获第一个.之前的所有字符.*:匹配后续所有内容,替换时丢弃这部分
注意事项:
- Java中正则的
.需要用\\.转义,因为.在正则里是通配符 - 用
^锚定开头很重要,避免URL中间出现类似结构的字符串被误匹配
内容的提问来源于stack exchange,提问作者HDev007
相关产品推荐
相关产品推荐

