private static ArrayList<String>[] formatStartNum(ArrayList<String> startNum,
            ArrayList<String> endNum,
            ArrayList<Integer> modes,
            ArrayList<Integer> steps,
            StringBuffer sb) {
        @SuppressWarnings("unchecked")
        ArrayList<String>[] tempArray = new ArrayList[startNum.size() + 1];
        tempArray[0] = new ArrayList<String>();
        tempArray[0].add(sb.toString());
        for (int index = 0; index < startNum.size(); index++) {
            String start = startNum.get(index);
            String end = endNum.get(index);
            int mode = modes.get(index);
            int step = steps.get(index);
            tempArray[index + 1] = new ArrayList<String>();
            boolean lengthEquals = start.length() == end.length();
            for (String currentPath : tempArray[index]) {
                for (int i = parseInt(start); i <= parseInt(end); i = i + step) {
                    tempArray[index + 1].add(currentPath.replaceAll(
                            "\\$\\{" + index + "}",
                            format(i, lengthEquals, end.length(), mode)));
                }
            }
        }
        return tempArray;
    }
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