public static String[] replaceDynamicSeq(String str) {
        if (StringUtils.isBlank(str)) {
            return null;
        }

        StringBuffer sb = new StringBuffer();
        int index = 0;
        /* find need replace number string */
        Matcher matcher = PATTERN.matcher(str);
        ArrayList<String> startNum = new ArrayList<String>();
        ArrayList<String> endNum = new ArrayList<String>();
        ArrayList<Integer> modes = new ArrayList<Integer>();
        ArrayList<Integer> steps = new ArrayList<Integer>();
        while (matcher.find()) {
            String matchStr = matcher.group(0);
            matchStr = StringUtils.strip(matchStr, "${");
            matchStr = StringUtils.strip(matchStr, "}");
            String[] patterns = matchStr.split(",");
            String startStr = patterns[0].trim().toLowerCase();
            String endStr = patterns[1].trim().toLowerCase();
            int step = 1;
            if (patterns.length >= 3) {
                String stepStr = patterns[2].trim();
                if (stepStr.length() > 0) {
                    step = parseInt(stepStr);
                }
            }

            boolean bFound = false;
            int mode = -1;

            /* match hex string */
            if (startStr.startsWith("0x") && endStr.startsWith("0x")) {
                bFound = true;
                mode = 16;
            } else if (startStr.startsWith("o") && endStr.startsWith("o")) {
                /* match oct string */
                Matcher startMatch = OCT_PATTERN.matcher(startStr);
                Matcher endMatch = OCT_PATTERN.matcher(endStr);
                if (startMatch.find() && endMatch.find()) {
                    bFound = true;
                    mode = 8;
                }
            } else {
                /* match dec string */
                Matcher startMatch = DEC_PATTERN.matcher(startStr);
                Matcher endMatch = DEC_PATTERN.matcher(endStr);
                if (startMatch.find() && endMatch.find()) {
                    bFound = true;
                    mode = 10;
                }
            }

            /* if not match oct, dec, hex; not do anything */
            /* if matched, bFound = true */
            if (bFound) {
                startNum.add(startStr);
                endNum.add(endStr);
                modes.add(mode);
                steps.add(step);
                matcher.appendReplacement(sb, "\\${" + (index++) + "}");
            }
        }
        matcher.appendTail(sb);
        ArrayList<String>[] tempArray = formatStartNum(startNum, endNum, modes, steps, sb);
        return tempArray[startNum.size()].toArray(new String[0]);
    }
Transfer string pattern into a list of real string.
For example: ${1, 99} = 1, 2, 3, ... 98,
99 <br> ${01, 99} = 01, 02, ... 98, 99 <br>
${0x0,0xff} = 1, 2, ... fe, ff <br> ${0x00,0xff}
= 01, 02, ... fe, ff <br> ${O1,O10} = 1, 2,... 7, 10<br>
${O01,O10} = 01, 02,... 07, 10<br>

test_${0x00,0x12,5} = test_00, test_05, test_0a, test_0f<br>

@param str source string
@return string list.
inlong-agent/agent-common/src/main/java/org/apache/inlong/agent/utils/AgentDbUtils.java