/* package whatever; // don't place package name! */
import java.util.* ;
import java.lang.* ;
import java.io.* ;
import java.util.regex.Matcher ;
import java.util.regex.Pattern ;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
final String regex
= "(\" \\ w+\" \\ s*:\\ s*\" ?[\\ w\\ s]+\" ?)" ; final String string
= "some value [{ hello \" name\" : \" value\" , xyz \" hello\" : \" another value\" hello \" age\" :778 and hello}] " ;
final Pattern pattern = Pattern.compile ( regex) ;
final Matcher matcher = pattern.matcher ( string) ;
List< String> allMatches = new ArrayList< String> ( ) ;
while ( matcher.find ( ) ) {
System .
out .
println ( "Full match: " + matcher.
group ( 0 ) ) ; allMatches.add ( matcher.group ( 0 ) ) ;
}
Iterator< String> it = allMatches.iterator ( ) ;
while ( it.hasNext ( ) ) {
if ( it.hasNext ( ) ) {
output+= ", " ;
}
}
output += "}]" ;
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CmltcG9ydCBqYXZhLnV0aWwucmVnZXguTWF0Y2hlcjsKaW1wb3J0IGphdmEudXRpbC5yZWdleC5QYXR0ZXJuOwoKLyogTmFtZSBvZiB0aGUgY2xhc3MgaGFzIHRvIGJlICJNYWluIiBvbmx5IGlmIHRoZSBjbGFzcyBpcyBwdWJsaWMuICovCmNsYXNzIElkZW9uZQp7CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCQlmaW5hbCBTdHJpbmcgcmVnZXggPSAiKFwiXFx3K1wiXFxzKjpcXHMqXCI/W1xcd1xcc10rXCI/KSI7CgkJZmluYWwgU3RyaW5nIHN0cmluZyA9ICJzb21lIHZhbHVlIFt7IGhlbGxvIFwibmFtZVwiOiBcInZhbHVlXCIsIHh5eiBcImhlbGxvXCI6IFwiYW5vdGhlciB2YWx1ZVwiIGhlbGxvIFwiYWdlXCI6Nzc4IGFuZCBoZWxsb31dICI7CgkJCgkJZmluYWwgUGF0dGVybiBwYXR0ZXJuID0gUGF0dGVybi5jb21waWxlKHJlZ2V4KTsKCQlmaW5hbCBNYXRjaGVyIG1hdGNoZXIgPSBwYXR0ZXJuLm1hdGNoZXIoc3RyaW5nKTsKCQlTdHJpbmcgb3V0cHV0ID0gIlt7IjsKCQkKCQlMaXN0PFN0cmluZz4gYWxsTWF0Y2hlcyA9IG5ldyBBcnJheUxpc3Q8U3RyaW5nPigpOwoJCQoJCXdoaWxlIChtYXRjaGVyLmZpbmQoKSkgewoJCSAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkZ1bGwgbWF0Y2g6ICIgKyBtYXRjaGVyLmdyb3VwKDApKTsKCQkgICAgYWxsTWF0Y2hlcy5hZGQobWF0Y2hlci5ncm91cCgwKSk7CgkJfQoJCQoJCUl0ZXJhdG9yPFN0cmluZz4gaXQgPSBhbGxNYXRjaGVzLml0ZXJhdG9yKCk7CgkJd2hpbGUoaXQuaGFzTmV4dCgpKXsKCQkJb3V0cHV0ICs9IChTdHJpbmcpIGl0Lm5leHQoKTsKCQkJaWYoaXQuaGFzTmV4dCgpKXsKCQkJCW91dHB1dCs9ICIsICI7CgkJCX0KCQl9CgkJCgkJb3V0cHV0ICs9ICJ9XSI7CgkJU3lzdGVtLm91dC5wcmludGxuKG91dHB1dCk7Cgl9Cn0=