All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.crabshue.commons.process.helpers.ProcessHelper Maven / Gradle / Ivy

package com.crabshue.commons.process.helpers;

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

public class ProcessHelper {

    private static final String SPLIT_EXPRESSION = "(\"[^\"\\\\]*(?:\\\\[\\S\\s][^\"\\\\]*)*\"|'[^'\\\\]*(?:\\\\[\\S\\s][^'\\\\]*)*'|\\/[^\\/\\\\]*(?:\\\\[\\S\\s][^\\/\\\\]*)*\\/[gimy]*(?=\\s|$)|(?:\\\\\\s|\\S)+)";

    /**
     * Split command into argument array.
     *
     * @param command The command to split.
     * @return The argument array.
     */
    public static String[] splitCommand(String command) {
        Pattern pattern = Pattern.compile(SPLIT_EXPRESSION);
        Matcher matcher  = pattern.matcher(command);
        List splitCommand = new ArrayList<>();
        while(matcher.find()) {
            String match = matcher.group();
            if( match != null ) {
                splitCommand.add(match.trim());
            }
        }
        return splitCommand.toArray(new String[0]);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy