import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "\\.populate_tasks\\[(arc|buck|build|hg|phabricator|source_control),";
final String string = "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[arc,diff]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[arc,fix]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[arc,focus]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[arc,lint]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[arc,pull]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[arc,refocus]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[buck,build]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[buck,install]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[buck,project]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[buck,run]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[buck,test]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[build,arc_rebuild]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[build,buck_build]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[build,entschema]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[build,fbios_noextensions]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[build,instagram_ios_noextensions]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[build,messenger_ios_noextensions]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[build,multifeed]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[build,unicorn]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[build,wakizashi]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[build,wakizashi_s2p]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[devserver,arc_fix]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[devserver,fixmyserver]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[devserver,flow_oom]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[devserver,hack_oom]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[devserver,hhserver_oom]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[hack,hh_healthy_minutes]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[hg,amend]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[hg,bookmarks]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[hg,branch]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[hg,commit]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[hg,diff]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[hg,log]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[hg,pull]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[hg,rebase]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[hg,smartlog]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[hg,status]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[hg,update]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[ide,flow_check]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[ide,flow_init]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[ide,hh_full_check]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[ide,hh_lazy_check]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[ide,hh_server_init]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[ide,intellij_file_to_intellisense]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[ide,intellij_project_to_intellisense]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[land,clean_lands]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[land,landcastle]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[phabricator,diffusion_pageload]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[phabricator,gql_client_duration]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[phabricator,gql_mutation_duration]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[phabricator,jf_submit_set_dependencies]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[phabricator,jf_submit_set_diffproperty]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[phabricator,jf_submit_total_elapsed]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[phabricator,jf_submit_update_diff]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[phabricator,jf_submit_update_revision]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[presto,adhoc_queue]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[source_control,hg]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[source_control,jellyfish]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[test,local_www]\n"
+ "── infrastructure.devspeed.error_rates.devspeed_raw_cost_events.populate_tasks[test,mobilelab]";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);
while (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