private static void InitializeRegex()

in src/StructuredLogger/Strings/Strings.cs [33:226]


        private static void InitializeRegex()
        {
            OutputPropertyMessagePrefix = GetString("OutputPropertyLogMessage").Replace("{0}={1}", "");
            BuildingWithToolsVersionPrefix = CreateRegex(GetString("ToolsVersionInEffectForBuild"), 1);
            PropertyGroupMessagePrefix = GetString("PropertyGroupLogMessage").Replace("{0}={1}", "");
            ForSearchPathPrefix = CreateRegex(GetString("ResolveAssemblyReference.SearchPath"), 1);
            UnifiedPrimaryReferencePrefix = CreateRegex(GetString("ResolveAssemblyReference.UnifiedPrimaryReference"), 1);
            PrimaryReferencePrefix = CreateRegex(GetString("ResolveAssemblyReference.PrimaryReference"), 1);
            DependencyPrefix = CreateRegex(GetString("ResolveAssemblyReference.Dependency"), 1);
            UnifiedDependencyPrefix = CreateRegex(GetString("ResolveAssemblyReference.UnifiedDependency"), 1);
            AssemblyFoldersExLocation = CreateRegex(GetString("ResolveAssemblyReference.AssemblyFoldersExSearchLocations"), 1);
            AdditionalPropertiesPrefix = CreateRegex(GetString("General.AdditionalProperties"), 1);
            OverridingGlobalPropertiesPrefix = CreateRegex(GetString("General.OverridingProperties"), 1);
            TargetAlreadyCompleteSuccess = GetString("TargetAlreadyCompleteSuccess");
            TargetAlreadyCompleteSuccessRegex = CreateRegex(TargetAlreadyCompleteSuccess, 1);
            TargetAlreadyCompleteFailure = GetString("TargetAlreadyCompleteFailure");
            TargetAlreadyCompleteFailureRegex = CreateRegex(TargetAlreadyCompleteFailure, 1);
            TargetSkippedWhenSkipNonexistentTargets = CreateRegex(GetString("TargetSkippedWhenSkipNonexistentTargets"), 1);
            SkipTargetBecauseOutputsUpToDateRegex = CreateRegex(GetString("SkipTargetBecauseOutputsUpToDate"), 1);
            RemovingProjectProperties = CreateRegex(GetString("General.ProjectUndefineProperties"), 1);

            DuplicateImport = CreateRegex(GetString("SearchPathsForMSBuildExtensionsPath"), 3);

            SearchPathsForMSBuildExtensionsPath = CreateRegex(GetString("SearchPathsForMSBuildExtensionsPath"), 2);

            OverridingTarget = CreateRegex(GetString("OverridingTarget"), 4);

            TryingExtensionsPath = CreateRegex(GetString("TryingExtensionsPath"), 2);

            ProjectImported = GetString("ProjectImported");

            string projectImported = "^" + ProjectImported
                .Replace(".", "\\.")
                .Replace("{0}", @"(?<ImportedProject>[^\""]+)")
                .Replace("{1}", @"(?<File>[^\""]+)")
                .Replace("({2},{3})", @"\((?<Line>\d+),(?<Column>\d+)\)") + "$";
            ProjectImportedRegex = new Regex(projectImported, RegexOptions.Compiled);

            TargetSkippedFalseCondition = GetString("TargetSkippedFalseCondition");

            TargetSkippedFalseConditionRegex = CreateRegex(TargetSkippedFalseCondition, 3);

            TaskSkippedFalseCondition = GetString("TaskSkippedFalseCondition");

            TaskSkippedFalseConditionRegex = CreateRegex(TaskSkippedFalseCondition, 3);

            TargetDoesNotExistBeforeTargetMessage = CreateRegex(GetString("TargetDoesNotExistBeforeTargetMessage"), 2);

            string copyingFileFromEscaped = Escape(GetString("Copy.FileComment"));
            CopyingFileFromRegex = new Regex(copyingFileFromEscaped
                .Replace(@"\{0}", @"(?<From>[^\""]+)")
                .Replace(@"\{1}", @"(?<To>[^\""]+)"), RegexOptions.Compiled);

            CreatingHardLinkRegex = new Regex(Escape(GetString("Copy.HardLinkComment"))
                .Replace(@"\{0}", @"(?<From>[^\""]+)")
                .Replace(@"\{1}", @"(?<To>[^\""]+)"), RegexOptions.Compiled);

            DidNotCopyRegex = new Regex(Escape(GetString("Copy.DidNotCopyBecauseOfFileMatch"))
               .Replace(@"\{0}", @"(?<From>[^\""]+)")
               .Replace(@"\{1}", @"(?<To>[^\""]+)")
               .Replace(@"\{2}", ".*?")
               .Replace(@"\{3}", ".*?"), RegexOptions.Compiled);

            RobocopyFileCopiedRegex = new Regex(Escape(RobocopyFileCopiedMessage)
                .Replace(@"\{0}", @"(?<From>[^\""]+)")
                .Replace(@"\{1}", @"(?<To>[^\""]+)"), RegexOptions.Compiled );

            RobocopyFileSkippedRegex = new Regex(Escape(RobocopyFileSkippedMessage)
                .Replace(@"\{0}", @"(?<From>[^\""]+)")
                .Replace(@"\{1}", @"(?<To>[^\""]+)"), RegexOptions.Compiled);

            RobocopyFileFailedRegex = new Regex(Escape(RobocopyFileFailedMessage)
                .Replace(@"\{0}", @"(?<From>[^\""]+)")
                .Replace(@"\{1}", @"(?<To>[^\""]+)"), RegexOptions.Compiled);

            ProjectImportSkippedMissingFile = GetString("ProjectImportSkippedMissingFile");

            string skippedMissingFile = "^" + ProjectImportSkippedMissingFile
                .Replace(".", "\\.")
                .Replace("{0}", @"(?<ImportedProject>[^\""]+)")
                .Replace("{1}", @"(?<File>[^\""]+)")
                .Replace("({2},{3})", @"\((?<Line>\d+),(?<Column>\d+)\)");
            ProjectImportSkippedMissingFileRegex = new Regex(skippedMissingFile, RegexOptions.Compiled);

            ProjectImportSkippedInvalidFile = GetString("ProjectImportSkippedInvalidFile");

            string skippedInvalidFile = "^" + ProjectImportSkippedInvalidFile
                .Replace(".", "\\.")
                .Replace("{0}", @"(?<ImportedProject>[^\""]+)")
                .Replace("{1}", @"(?<File>[^\""]+)")
                .Replace("({2},{3})", @"\((?<Line>\d+),(?<Column>\d+)\)");
            ProjectImportSkippedInvalidFileRegex = new Regex(skippedInvalidFile, RegexOptions.Compiled);

            ProjectImportSkippedEmptyFile = GetString("ProjectImportSkippedEmptyFile");

            string skippedEmptyFile = "^" + ProjectImportSkippedEmptyFile
                .Replace(".", "\\.")
                .Replace("{0}", @"(?<ImportedProject>[^\""]+)")
                .Replace("{1}", @"(?<File>[^\""]+)")
                .Replace("({2},{3})", @"\((?<Line>\d+),(?<Column>\d+)\)");
            ProjectImportSkippedEmptyFileRegex = new Regex(skippedEmptyFile, RegexOptions.Compiled);

            ProjectImportSkippedNoMatches = GetString("ProjectImportSkippedNoMatches");

            string skippedNoMatches = "^" + ProjectImportSkippedNoMatches
                .Replace(".", "\\.")
                .Replace("{0}", @"(?<ImportedProject>[^\""]+)")
                .Replace("{1}", @"(?<File>.*)")
                .Replace("({2},{3})", @"\((?<Line>\d+),(?<Column>\d+)\)");
            ProjectImportSkippedNoMatchesRegex = new Regex(skippedNoMatches, RegexOptions.Compiled);

            PropertyReassignment = GetString("PropertyReassignment");

            string propertyReassignment = "^" + PropertyReassignment
                .Replace(@"$({0})=""{1}"" (", @"\$\((?<Name>\w+)\)="".*"" \(")
                .Replace(@"""{2}"")", @""".*""\)")
                .Replace("{3}", @"(?<File>.*) \((?<Line>\d+),(?<Column>\d+)\)$");
            PropertyReassignmentRegex = new Regex(propertyReassignment, RegexOptions.Compiled | RegexOptions.Singleline);

            string deferredResponseFile = "^" + GetString("DeferredResponseFile")
                .Replace(@"{0}", @"(?<File>((.:)?[^:\n\r]*?))") + "$";
            DeferredResponseFileRegex = new Regex(deferredResponseFile, RegexOptions.Compiled | RegexOptions.Singleline);

            MetaprojectGenerated = GetString("MetaprojectGenerated");
            string messageMetaprojectGeneratedString = MetaprojectGenerated.Replace(@"{0}", @"(?<File>((.:)?[^:\n\r]*?))");

            MessageMetaprojectGenerated = new Regex(messageMetaprojectGeneratedString, RegexOptions.Compiled | RegexOptions.Singleline);

            string taskFoundFromFactory = GetString("TaskFoundFromFactory")
                .Replace(@"""{0}""", @"\""(?<task>.+)\""")
                .Replace(@"""{1}""", @"\""(?<assembly>.+)\""");
            TaskFoundFromFactory = new Regex("^" + taskFoundFromFactory, RegexOptions.Compiled);

            string taskFound = GetString("TaskFound")
               .Replace(@"""{0}""", @"\""(?<task>.+)\""")
               .Replace(@"""{1}""", @"\""(?<assembly>.+)\""");
            TaskFound = new Regex("^" + taskFound, RegexOptions.Compiled);

            ProjectImportSkippedFalseCondition = GetString("ProjectImportSkippedFalseCondition");

            string skippedFalseCondition = "^" + ProjectImportSkippedFalseCondition
                .Replace(".", "\\.")
                .Replace("{0}", @"(?<ImportedProject>[^\""]+)")
                .Replace("{1}", @"(?<File>[^\""]+)")
                .Replace("({2},{3})", @"\((?<Line>\d+),(?<Column>\d+)\)")
                .Replace("{4}", "(?<Reason>.+)")
                .Replace("{5}", "(?<Evaluated>.+)");
            ProjectImportSkippedFalseConditionRegex = new Regex(skippedFalseCondition, RegexOptions.Compiled);

            CouldNotResolveSdk = GetString("CouldNotResolveSdk");
            CouldNotResolveSdkRegex = new Regex("^" + CouldNotResolveSdk
                .Replace("{0}", @"(?<Sdk>[^\""]+)"), RegexOptions.Compiled);

            ProjectImportSkippedExpressionEvaluatedToEmpty = GetString("ProjectImportSkippedExpressionEvaluatedToEmpty");

            string emptyCondition = "^" + ProjectImportSkippedExpressionEvaluatedToEmpty
                .Replace(".", "\\.")
               .Replace("{0}", @"(?<ImportedProject>[^\""]+)")
               .Replace("{1}", @"(?<File>[^\""]+)")
               .Replace("({2},{3})", @"\((?<Line>\d+),(?<Column>\d+)\)");
            ProjectImportSkippedExpressionEvaluatedToEmptyRegex = new Regex(emptyCondition, RegexOptions.Compiled);

            ConflictReferenceSameSDK = CreateRegex(GetString("GetSDKReferenceFiles.ConflictReferenceSameSDK"), 3);

            ConflictRedistDifferentSDK = CreateRegex(GetString("GetSDKReferenceFiles.ConflictRedistDifferentSDK"), 5);

            ConflictReferenceDifferentSDK = CreateRegex(GetString("GetSDKReferenceFiles.ConflictRedistDifferentSDK"), 4);

            ConflictFoundRegex = new Regex(Escape(GetString("ResolveAssemblyReference.ConflictFound"))
                .Replace(@"\{0}", ".*?")
                .Replace(@"\{1}", ".*?")
                + ".*", RegexOptions.Compiled);

            var foundConflictsRaw = GetString("ResolveAssemblyReference.FoundConflicts");
            if (foundConflictsRaw.StartsWith("MSB3277: "))
            {
                foundConflictsRaw = foundConflictsRaw.Substring("MSB3277: ".Length);
            }

            var foundConflictsNormalized = foundConflictsRaw.NormalizeLineBreaks();
            var foundConflictsEscaped = Escape(foundConflictsNormalized);
            FoundConflictsRegex = new Regex(foundConflictsEscaped
                .Replace(@"\{0}", @"(?<Assembly>[^\""]*)")
                .Replace(@"\{1}", @"(?<Details>.*)"), RegexOptions.Compiled | RegexOptions.Singleline);

            TaskParameterMessagePrefix = GetString("TaskParameterPrefix");
            OutputItemsMessagePrefix = GetString("OutputItemParameterMessagePrefix");
            ItemGroupIncludeMessagePrefix = GetString("ItemGroupIncludeLogMessagePrefix");
            ItemGroupRemoveMessagePrefix = GetString("ItemGroupRemoveLogMessage");
            GlobalPropertiesPrefix = GetString("General.GlobalProperties");
            RemovingPropertiesPrefix = GetString("General.UndefineProperties");
            EvaluationStarted = GetString("EvaluationStarted");
            EvaluationFinished = GetString("EvaluationFinished");
        }