import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "^\\w++\\W++((?<=\\\")[\\w-]+(?=\"))\\W+((?<=\\\")[\\w-]+(?=\"))[\\S\\s]+?(count\\W+=.*)[\\S\\s]+?^\\}$";
final String string = "resource \"aws_iam_role\" \"my_test_payer_specific_role\" {\n"
+ " count = \"${(var.payer_account == \"380834257621\")?1:0}\"\n\n"
+ " name = \"my_test_payer_specific_role\"\n"
+ " max_session_duration = \"7200\"\n"
+ " assume_role_policy = \"${data.aws_iam_policy_document.my_test_payer_specific_role-policy.json}\"\n"
+ " tags = \"${var.resources_tags}\"\n"
+ " lifecycle {\n"
+ " ignore_changes = [\n"
+ " \"permissions_boundary\"\n"
+ " ]\n"
+ " }\n"
+ "}\n\n"
+ "resource \"aws_iam_role_policy_attachment\" \"my_test_payer_specific_role-policy-attachment\" {\n"
+ " role = \"${aws_iam_role.my_test_payer_specific_role.name}\"\n"
+ " count = \"${(var.payer_account == \"380834257621\")?1:0}\"\n"
+ " policy_arn = \"arn:${var.partition}:iam::aws:policy/AdministratorAccess\"\n"
+ "}\n\n"
+ "data \"aws_iam_policy_document\" \"my_test_payer_specific_role-policy\" {\n"
+ " count = \"${(var.payer_account == \"380834257621\")?1:0}\"\n"
+ " statement {\n"
+ " actions = [\"sts:AssumeRole\"]\n\n"
+ " principals {\n"
+ " type = \"AWS\"\n"
+ " identifiers = [\"arn:${var.partition}:iam::${var.payer_account}:root\", \"arn:${var.partition}:iam::380834257621:root\"]\n"
+ " }\n"
+ " }\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