import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "# From object name = value \n"
+ "( # (1 start)\n"
+ " \" \\s* \\w+ \\s* \" \\s* : \n"
+ " \n"
+ " (?! \\s* \" ) # not a string\n"
+ " (?! # not a number\n"
+ " \\s* \\d+ \\s* \n"
+ " (?: , | \\] | \\} )\n"
+ " )\n"
+ " (?! \\s* [\\{\\[] ) # not a object or array\n"
+ " (?! # not true,false or null\n"
+ " \\s* \n"
+ " (?: true | false | null )\n"
+ " \\s* \n"
+ " (?: , | \\] | \\} )\n"
+ " )\n"
+ " \n"
+ " \\s* \n"
+ ") # (1 end)\n"
+ "( .+? ) # (2)\n"
+ "(?= [,\\}] )";
final String string = " {\"Id\": \"2017\",\n"
+ " \"Currency\": \"AUD\",\n"
+ " \"Date\": 2020-06-22,\n"
+ " \"InCash\": 0.000, \n"
+ " \"Dep\": \"ABC90\",\n"
+ " \"sdf\" : 739,\n"
+ " \"sumCash\": 770.87,\n"
+ " \"AnotherDate\": 2020-06-21}";
final String subst = "$1\"$2\"";
final Pattern pattern = Pattern.compile(regex, Pattern.COMMENTS);
final Matcher matcher = pattern.matcher(string);
// The substituted value will be contained in the result variable
final String result = matcher.replaceAll(subst);
System.out.println("Substitution result: " + result);
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Java, please visit: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html