I have input string like "\\{\\{\\{testing}}}" and I want to remove all "\". Required o/p: "{{{testing}}}".

I am using following code to accomplish this.

protected String removeEscapeChars(String regex, String remainingValue) {
    Matcher matcher = Pattern.compile(regex, Pattern.CASE_INSENSITIVE).matcher(remainingValue);
    while (matcher.find()) {
        String before = remainingValue.substring(0, matcher.start());
        String after = remainingValue.substring(matcher.start() + 1);
        remainingValue = (before + after);
    }
    return remainingValue;
}

I am passing regex as "\\\\{.*?\\\\}".

Code is working fine only for 1st occurrence of "\{" but not for all its occurrences. Seeing the following outputs for different inputs.

  1. i/p : "\\{testing}" - o/p: "{testing}"
  2. i/p : "\\{\\{testing}}" - o/p: "{\\{testing}}"
  3. i/p : "\\{\\{\\{testing}}}" - o/p: "{\\{\\{testing}}}"

I want "\" should be removed from the passed i/p string, and all "\\{" should be replaced with "{".

I feel the problem is with regex value i.e., "\\\\{.*?\\\\}".

Can anyone let me know what should be the regex value to the get required o/p.

Edit
Report