import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(?:-|role:)??\\binfo-ansible(?=[\\s,])";
final String string = "- { role: info-ansible, }\n"
+ "- { role: info-ansible\n"
+ "- info-ansible\n\n"
+ "- info-ansibleasdasd\n\n\n"
+ "- info-ansible-\n"
+ "- info-ansibleasd\n\n"
+ "- { role: info-ansible, db_type: \"emg db\", hosts_dns: \"{{ env_db_emg_hosts_file_dns }}\", activate_server_ip: \"{{ shared_db_passive_emg_server_ip }}\" }\n"
+ "- { role: loadbalancer-remove-node, pool_host_port: '{{ env_db_port }}', pool_host_name: \"{{ common_db_active_emg_server }}\", pool_name: '{{ env_loadbalancer_vservers.active_emg_db.pool.pool_name }}' }\n\n"
+ ",role: info-ansible\n";
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