import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "( `\\n)( query \\{\\n)( .*)(\\{\\n)( (.|\\n|)[^;]*)( \\}\\n)( \\}\\n)( `)";
final String string = "import { gql } from '@apollo/client';\n\n"
+ "const getAccountingSubject = gql(\n"
+ " `\n"
+ " query {\n"
+ " accountingSubjects {\n"
+ " id\n"
+ " accountingSubjectNumber\n"
+ " accountingSubjectTypeId\n"
+ " accountingSubjectType {\n"
+ " name\n"
+ " code\n"
+ " }\n"
+ " accountingSubjectPrefixCodeId\n"
+ " accountingSubjectCompanyType\n"
+ " name\n"
+ " note\n"
+ " }\n"
+ " }\n"
+ " `,\n"
+ ");\n\n"
+ "const getAccountingSubjectById = (id) =>\n"
+ " gql(\n"
+ " `\n"
+ " query {\n"
+ " accountingSubjects (where: {id: {eq: ${id}}}) {\n"
+ " id\n"
+ " accountingSubjectNumber\n"
+ " accountingSubjectTypeId\n"
+ " accountingSubjectType {\n"
+ " name\n"
+ " code\n"
+ " }\n"
+ " accountingSubjectPrefixCodeId\n"
+ " accountingSubjectCompanyType\n"
+ " name\n"
+ " note\n"
+ " }\n"
+ " }\n"
+ " `,\n"
+ " );\n\n"
+ "export default {\n"
+ " getAccountingSubject,\n"
+ " getAccountingSubjectById,\n"
+ "};\n";
final String subst = "$1$2$3{\\n totalCount\\n pageInfo {\\n hasNextPage\\n hasPreviousPage\\n }\\n item $4 $5 }\\n$7$8$9";
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