import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(?<=\"name\": \")(.+)(\",\\n\\s+\"war_memorials\": \")(.*?\\1,)(.*?)(,.*)(?=\",)";
final String string = "\"properties\": {\n"
+ " \"cartodb_id\": 2,\n"
+ " \"sortcode\": 3,\n"
+ " \"pop2011\": 612431,\n"
+ " \"pop2002\": 652625,\n"
+ " \"pop1992\": 681206,\n"
+ " \"pop1977\": 631918,\n"
+ " \"pop1966\": 529833,\n"
+ " \"pop1956\": 483741,\n"
+ " \"pop1948\": 448964,\n"
+ " \"regionid\": 3,\n"
+ " \"countycode\": 38,\n"
+ " \"countyid\": 3,\n"
+ " \"region\": \"Sud\",\n"
+ " \"mnemonic\": \"AG\",\n"
+ " \"name\": \"Argeș\",\n"
+ " \"war_memorials\": \"București,132,Alba,145,Brașov,151,Covasna,100,Harghita,188,Mureș,363,Sibiu,165,Bacău,188,Botoșani,149,Iași,246,Neamț,235,Suceava,219,Vaslui,212,Bihor,199,Bistrița-Năsăud,120,Cluj,186,Maramureș,,Satu Mare,119,Sălaj,79,Brăila,47,Buzău,188,Constanța,89,Galați,,Tulcea,87,Vrancea,76,Argeș,252,Călărași,115,Dâmbovița,191,Giurgiu,180,Ialomița,113,Prahova,162,Teleorman,202,Dolj,212,Gorj,154,Mehedinți,110,Olt,163,Vâlcea,185,Arad,233,Caraș-Severin,176,Hunedoara,118,Timiș,321\",\n"
+ " \"version\": \"2016-03-10T00:00:00Z\",\n"
+ " \"comune\": 95,\n"
+ " \"orase\": \"4\"\n"
+ " }\n"
+ "}\n";
final String subst = "\\1\\2\\4";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
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