using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"^\w++\W++((?<=\"")[\w-]+(?=""))\W+((?<=\"")[\w-]+(?=""))[\S\s]+?(count\W+=.*)[\S\s]+?^}$";
string input = @"resource ""aws_iam_role"" ""my_test_payer_specific_role"" {
count = ""${(var.payer_account == ""380834257621"")?1:0}""
name = ""my_test_payer_specific_role""
max_session_duration = ""7200""
assume_role_policy = ""${data.aws_iam_policy_document.my_test_payer_specific_role-policy.json}""
tags = ""${var.resources_tags}""
lifecycle {
ignore_changes = [
""permissions_boundary""
]
}
}
resource ""aws_iam_role_policy_attachment"" ""my_test_payer_specific_role-policy-attachment"" {
role = ""${aws_iam_role.my_test_payer_specific_role.name}""
count = ""${(var.payer_account == ""380834257621"")?1:0}""
policy_arn = ""arn:${var.partition}:iam::aws:policy/AdministratorAccess""
}
data ""aws_iam_policy_document"" ""my_test_payer_specific_role-policy"" {
count = ""${(var.payer_account == ""380834257621"")?1:0}""
statement {
actions = [""sts:AssumeRole""]
principals {
type = ""AWS""
identifiers = [""arn:${var.partition}:iam::${var.payer_account}:root"", ""arn:${var.partition}:iam::380834257621:root""]
}
}
}";
RegexOptions options = RegexOptions.Multiline;
foreach (Match m in Regex.Matches(input, pattern, options))
{
Console.WriteLine("'{0}' found at index {1}.", m.Value, m.Index);
}
}
}
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 C#, please visit: https://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex(v=vs.110).aspx