/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
import java.util.regex.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
String input
= "{\"Glossary\":{\"Title\":\"Exampleglossary\",\"GlossDiv\":{\"title\":\"S\",\"GlossList\":{\"GlossEntry\":{\"ID\":\"SGML\",\"SortAs\":\"SGML\",\"GlossTerm\":\"StandardGeneralizedMarkupLanguage\",\"Acronym\":\"SGML\",\"Abbrev\":\"ISO8879:1986\",\"GlossDef\":{\"para\":\"Ameta-markuplanguage,usedtocreatemarkuplanguagessuchasDocBook.\",\"GlossSeeAlso\":[\"GML\",\"XML\"]},\"GlossSee\":\"markup\"}}}}}"; Pattern p = Pattern.compile("\"([A-Z])([^\"]*\"\\s*:)"); // matches '"Xxxx" :'
Matcher m = p.matcher(input);
while (m.find()) {
m.
appendReplacement(output,
String.
format("\"%s$2", m.
group(1).
toLowerCase())); }
m.appendTail(output);
System.
out.
println(output.
toString()); }
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CmltcG9ydCBqYXZhLnV0aWwucmVnZXguKjsKCi8qIE5hbWUgb2YgdGhlIGNsYXNzIGhhcyB0byBiZSAiTWFpbiIgb25seSBpZiB0aGUgY2xhc3MgaXMgcHVibGljLiAqLwpjbGFzcyBJZGVvbmUKewoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uCgl7CgkJU3RyaW5nIGlucHV0ID0gIntcIkdsb3NzYXJ5XCI6e1wiVGl0bGVcIjpcIkV4YW1wbGVnbG9zc2FyeVwiLFwiR2xvc3NEaXZcIjp7XCJ0aXRsZVwiOlwiU1wiLFwiR2xvc3NMaXN0XCI6e1wiR2xvc3NFbnRyeVwiOntcIklEXCI6XCJTR01MXCIsXCJTb3J0QXNcIjpcIlNHTUxcIixcIkdsb3NzVGVybVwiOlwiU3RhbmRhcmRHZW5lcmFsaXplZE1hcmt1cExhbmd1YWdlXCIsXCJBY3JvbnltXCI6XCJTR01MXCIsXCJBYmJyZXZcIjpcIklTTzg4Nzk6MTk4NlwiLFwiR2xvc3NEZWZcIjp7XCJwYXJhXCI6XCJBbWV0YS1tYXJrdXBsYW5ndWFnZSx1c2VkdG9jcmVhdGVtYXJrdXBsYW5ndWFnZXNzdWNoYXNEb2NCb29rLlwiLFwiR2xvc3NTZWVBbHNvXCI6W1wiR01MXCIsXCJYTUxcIl19LFwiR2xvc3NTZWVcIjpcIm1hcmt1cFwifX19fX0iOwoJICAgIFBhdHRlcm4gcCA9IFBhdHRlcm4uY29tcGlsZSgiXCIoW0EtWl0pKFteXCJdKlwiXFxzKjopIik7IC8vIG1hdGNoZXMgJyJYeHh4IiA6JwoJICAgIE1hdGNoZXIgbSA9IHAubWF0Y2hlcihpbnB1dCk7CgkgICAgU3RyaW5nQnVmZmVyIG91dHB1dCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKCSAgICB3aGlsZSAobS5maW5kKCkpIHsKCSAgICAgICBtLmFwcGVuZFJlcGxhY2VtZW50KG91dHB1dCwgU3RyaW5nLmZvcm1hdCgiXCIlcyQyIiwgbS5ncm91cCgxKS50b0xvd2VyQ2FzZSgpKSk7CgkgICAgfQoJICAgIG0uYXBwZW5kVGFpbChvdXRwdXQpOwoJICAgIFN5c3RlbS5vdXQucHJpbnRsbihvdXRwdXQudG9TdHJpbmcoKSk7Cgl9Cn0=
{"glossary":{"title":"Exampleglossary","glossDiv":{"title":"S","glossList":{"glossEntry":{"iD":"SGML","sortAs":"SGML","glossTerm":"StandardGeneralizedMarkupLanguage","acronym":"SGML","abbrev":"ISO8879:1986","glossDef":{"para":"Ameta-markuplanguage,usedtocreatemarkuplanguagessuchasDocBook.","glossSeeAlso":["GML","XML"]},"glossSee":"markup"}}}}}