package com.fdkankan.filestorage.util;

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

/**
 * @author Xiewj
 * @date 2025/3/11
 */
public class DomainUtil {
    // 定义一个方法用于替换文本中的域名
    public static String replaceDomain(String url, String newDomain) {
        // 正则表达式用于匹配URL中的域名部分（包括可能的协议部分）
        String patternString = "(https?://)[\\w.-]+";
        Pattern pattern = Pattern.compile(patternString);
        Matcher matcher = pattern.matcher(url);

        // 使用新域名进行替换
        StringBuffer result = new StringBuffer();
        while (matcher.find()) {
            // 检查新域名是否已包含协议
            if (newDomain.startsWith("http://") || newDomain.startsWith("https://")) {
                // 如果新域名已经包含协议，则直接替换整个匹配的部分
                matcher.appendReplacement(result, newDomain);
            } else {
                // 如果新域名不包含协议，则仅替换域名部分
                matcher.appendReplacement(result, matcher.group(1) + newDomain);
            }
        }
        matcher.appendTail(result);

        return result.toString();
    }

    public static void main(String[] args) {
        // 测试用例
        String originalUrl = "https://laser-data.oss-cn-shenzhen.aliyuncs.com/testdata/SG-t-nlpWGOCYxCT/temp/model/1899294769733570560.ply?Expires=1741690934&OSSAccessKeyId=LTAI5tJwboCj3r4vUNkSmbyX&Signature=7PdIUcsuJhNwSVbMX0RpWEVcpqk%3D";
        String newDomainWithProtocol = "https://aaa.bbb.com"; // 新域名包含协议
        System.out.println("原始URL: " + originalUrl);

        // 替换域名后的URL
        String replacedUrl = replaceDomain(originalUrl, newDomainWithProtocol);
        System.out.println("替换后的URL: " + replacedUrl);
    }
}
