private String extractPathParameters()

in src/main/java/org/apache/sling/api/uri/SlingUriBuilder.java [1011:1034]


    private String extractPathParameters(String path) {
        // we rebuild the parameters from scratch as given in path (if path is set to null we also reset)
        pathParameters.clear();
        if (path != null) {
            Pattern pathParameterRegex = Pattern.compile(PATH_PARAMETERS_REGEX);

            StringBuffer resultString = null;
            Matcher regexMatcher = pathParameterRegex.matcher(path);
            while (regexMatcher.find()) {
                if (resultString == null) {
                    resultString = new StringBuffer();
                }
                regexMatcher.appendReplacement(resultString, "");
                String key = regexMatcher.group(1);
                String value = isNotBlank(regexMatcher.group(2)) ? regexMatcher.group(2) : regexMatcher.group(3);
                pathParameters.put(key, value);
            }
            if (resultString != null) {
                regexMatcher.appendTail(resultString);
                path = resultString.toString();
            }
        }
        return path;
    }