package com.xinelu.common.utils;

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

/**
 * @description: 字符串获取工具类
 * @author: zh
 * @createDate: 2026-04-26
 */
public class BracketExtractor {

    /**
     * 提取字符串中所有【】内的文字，返回List<String>
     *
     * @param input 原始字符串
     * @return 包含所有【】内文字的列表（不会为null，若无匹配则返回空列表）
     */
    public static List<String> extractToList(String input) {
        List<String> result = new ArrayList<>();
        if (input == null || input.isEmpty()) {
            return result;
        }
        // 正则：匹配【 后任意字符（非贪婪）直到 】
        Pattern pattern = Pattern.compile("【(.*?)】");
        Matcher matcher = pattern.matcher(input);
        while (matcher.find()) {
            result.add(matcher.group(1)); // group(1) 是括号内捕获的内容
        }
        return result;
    }

    /**
     * 提取字符串中所有【】内的文字，返回String[]
     *
     * @param input 原始字符串
     * @return 包含所有【】内文字的数组
     */
    public static String[] extractToArray(String input) {
        List<String> list = extractToList(input);
        return list.toArray(new String[0]);
    }
}