Java 正则表达式提取URL:实战示例与代码解析

您是否需要从复杂的URL中提取出基础域名部分?例如,从以下URL中提取出'https://www.mpa.gov.sg':

https://www.mpa.gov.sg/media-centre?page=1&year=All&type=63fc1321-c383-4bc1-8cda-a7718c8eb28c

您可以使用以下Java代码实现正则表达式来截取URL:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main {
    public static void main(String[] args) {
        String url = 'https://www.mpa.gov.sg/media-centre?page=1&year=All&type=63fc1321-c383-4bc1-8cda-a7718c8eb28c';
        String regex = '(https?://[a-zA-Z0-9.-]+).*';
        
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(url);
        
        if (matcher.matches()) {
            String extractedUrl = matcher.group(1);
            System.out.println(extractedUrl);
        }
    }
}

这段代码使用正则表达式 '(https?://[a-zA-Z0-9.-]+).*' 来匹配URL,并使用 matcher.group(1) 提取匹配的部分。在这个例子中,提取到的URL为 https://www.mpa.gov.sg

代码解析:

  • '(https?://[a-zA-Z0-9.-]+).*':该正则表达式匹配以'http://'或'https://'开头的URL,并提取出其中的域名部分,包括子域名。
  • Pattern.compile(regex):将正则表达式编译成模式对象。
  • Matcher matcher = pattern.matcher(url):将模式对象与目标URL进行匹配。
  • matcher.matches():判断是否完全匹配。
  • matcher.group(1):提取匹配到的第一个分组,也就是我们需要的基础域名。

通过以上步骤,您可以轻松使用Java正则表达式从URL中提取出基础域名。在实际应用中,您可以根据不同的需求调整正则表达式,以匹配更复杂的URL模式。

Java 正则表达式提取URL:实战示例与代码解析

原文地址: https://www.cveoy.top/t/topic/o9Rk 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录