import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(?U)\\s*<key>GA\\X*<\\/dict>";
final String string = "<dict>\n"
+ " <key>account.logout</key>\n"
+ " <dict>\n"
+ " <key>GA</key>\n"
+ " <dict>\n"
+ " <key>action</key>\n"
+ " <string>ButtonPressed</string>\n"
+ " <key>category</key>\n"
+ " <string>Account</string>\n"
+ " <key>label</key>\n"
+ " <string>Logout</string>\n"
+ " </dict>\n"
+ " <key>MP</key>\n"
+ " <dict>\n"
+ " <key>name</key>\n"
+ " <string>account logged out</string>\n"
+ " <key>people</key>\n"
+ " <dict>\n"
+ " <key>__set__</key>\n"
+ " <dict>\n"
+ " <key>logged into account</key>\n"
+ " <false/>\n"
+ " </dict>\n"
+ " </dict>\n"
+ " <key>properties</key>\n"
+ " <dict>\n"
+ " <key>_flow</key>\n"
+ " <string>login</string>\n"
+ " </dict>\n"
+ " </dict>\n"
+ " <key>ABOY</key>\n"
+ " <dict>\n"
+ " <key>name</key>\n"
+ " <string>account_logout_free2move</string>\n"
+ " <key>people</key>\n"
+ " <dict>\n"
+ " <key>logged_in_to_free2move</key>\n"
+ " <false/>\n"
+ " </dict>\n"
+ " </dict>\n"
+ " </dict>\n"
+ " <key>account.notification.create.facebook</key>\n"
+ " <dict>\n"
+ " <key>GA</key>\n"
+ " <dict>\n"
+ " <key>action</key>\n"
+ " <string>ButtonPressed</string>\n"
+ " <key>category</key>\n"
+ " <string>Account</string>\n"
+ " <key>label</key>\n"
+ " <string>Create Facebook</string>\n"
+ " </dict>\n"
+ " <key>MP</key>\n"
+ " <dict>\n"
+ " <key>name</key>\n"
+ " <string>create account pressed</string>\n"
+ " <key>properties</key>\n"
+ " <dict>\n"
+ " <key>_account_type</key>\n"
+ " <string>facebook</string>\n"
+ " <key>_flow</key>\n"
+ " <string>login</string>\n"
+ " </dict>\n"
+ " </dict>\n"
+ " </dict>\n"
+ " <key>account.notification.create.success.facebook</key>\n"
+ " <dict>\n"
+ " <key>GA</key>\n"
+ " <dict>\n"
+ " <key>action</key>\n"
+ " <string>AccountCreatedSuccessful</string>\n"
+ " <key>category</key>\n"
+ " <string>Account</string>\n"
+ " <key>label</key>\n"
+ " <string>Facebook</string>\n"
+ " </dict>\n"
+ " <key>MP</key>\n"
+ " <dict>\n"
+ " <key>name</key>\n"
+ " <string>create account success</string>\n"
+ " <key>people</key>\n"
+ " <dict>\n"
+ " <key>__set__</key>\n"
+ " <dict>\n"
+ " <key>account type</key>\n"
+ " <string>facebook</string>\n"
+ " <key>logged into account</key>\n"
+ " <true/>\n"
+ " </dict>\n"
+ " <key>__set_current_timestamp__</key>\n"
+ " <string>last logged in account</string>\n"
+ " </dict>\n"
+ " <key>properties</key>\n"
+ " <dict>\n"
+ " <key>_account_type</key>\n"
+ " <string>facebook</string>\n"
+ " <key>_flow</key>\n"
+ " <string>account</string>\n"
+ " </dict>\n"
+ " </dict>\n"
+ " <key>ABOY</key>\n"
+ " <dict>\n"
+ " <key>name</key>\n"
+ " <string>account_created_free2move</string>\n"
+ " <key>people</key>\n"
+ " <dict>\n"
+ " <key>logged_in_to_free2move</key>\n"
+ " <true/>\n"
+ " <key>has_free2move_account</key>\n"
+ " <true/>\n"
+ " </dict>\n"
+ " <key>properties</key>\n"
+ " <dict>\n"
+ " <key>account_type</key>\n"
+ " <string>facebook</string>\n"
+ " </dict>\n"
+ " </dict>\n"
+ " </dict>\n"
+ " <key>account.notification.declined</key>\n"
+ " <dict>\n"
+ " <key>GA</key>\n"
+ " <dict>\n"
+ " <key>action</key>\n"
+ " <string>ButtonPressed</string>\n"
+ " <key>category</key>\n"
+ " <string>Account</string>\n"
+ " <key>label</key>\n"
+ " <string>Later</string>\n"
+ " </dict>\n"
+ " <key>MP</key>\n"
+ " <dict>\n"
+ " <key>name</key>\n"
+ " <string>later pressed</string>\n"
+ " <key>properties</key>\n"
+ " <dict>\n"
+ " <key>_flow</key>\n"
+ " <string>account</string>\n"
+ " </dict>\n"
+ " </dict>\n"
+ " </dict>\n"
+ " <key>account.notification.shown</key>\n"
+ " <dict>\n"
+ " <key>GA</key>\n"
+ " <dict>\n"
+ " <key>action</key>\n"
+ " <string>DialogueShown</string>\n"
+ " <key>category</key>";
final Pattern pattern = Pattern.compile(regex);
final Matcher matcher = pattern.matcher(string);
if (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
for (int i = 1; i <= matcher.groupCount(); i++) {
System.out.println("Group " + i + ": " + matcher.group(i));
}
}
}
}
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