import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "interface (\\w+)(\\s+)\\{([?\\w\\s\\d:;()\\[\\]=>\\.]*)\\};";
final String string = "/**\n"
+ " * Analytic instance returned from initialization\n"
+ " * @property identify - Identify a user\n"
+ " * @property track - Track an analytics event\n"
+ " * @property page - Trigger page view\n"
+ " * @property user - Get user data\n"
+ " * @property reset - Clear information about user & reset analytics\n"
+ " * @property ready - Fire callback on analytics ready event\n"
+ " * @property on - Fire callback on analytics lifecycle events.\n"
+ " * @property once - Fire callback on analytics lifecycle events once.\n"
+ " * @property getState - Get data about user, activity, or context.\n"
+ " * @property storage - storage methods\n"
+ " * @property plugins - plugin methods\n"
+ " */ \n"
+ "export interface AnalyticsInstance {\n"
+ " identify: Identify;\n"
+ " track: Track;\n"
+ " page: Page;\n"
+ " user: User;\n"
+ " reset: Reset;\n"
+ " ready: Ready;\n"
+ " on: On;\n"
+ " once: Once;\n"
+ " getState: GetState;\n"
+ " storage: Storage;\n"
+ " plugins: Plugins;\n"
+ " };\n\n"
+ "interface AnalyticsPluginBase {\n"
+ " name: string;\n"
+ " EVENTS?: any;\n"
+ " config?: any;\n"
+ " initialize?: (...params: any[]) => any;\n"
+ " page?: (...params: any[]) => any;\n"
+ " track?: (...params: any[]) => any;\n"
+ " identify?: (...params: any[]) => any;\n"
+ " loaded?: (...params: any[]) => any;\n"
+ " ready?: (...params: any[]) => any;\n"
+ "};";
final String subst = "interface $1$2{$3}";
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