Imports System Imports uCalcSoftware Public Module Program Public Sub Main() Dim uc As New uCalc() Using validator As New uCalc.Transformer() '// Rule 1: Must contain exactly one 'Host' setting. Dim hostRule = validator.Pattern("Host: {@Alpha}").SetMinimum(1).SetMaximum(1) '// Rule 2: Must contain at least one 'Port' setting. Dim portRule = validator.Pattern("Port: {@Number}").SetMinimum(1) Dim configFile_OK = " Host: server1 Port: 80 Port: 443 " Dim configFile_FAIL = "Port: 80" '// Missing Host Console.WriteLine("--- Testing Valid Config ---") validator.SetText(configFile_OK).Find() If hostRule.Matches.Count() > 0 And portRule.Matches.Count() > 0 Then Console.WriteLine("Config file is valid.") Else Console.WriteLine("Config file is invalid.") End If Console.WriteLine() Console.WriteLine("--- Testing Invalid Config ---") validator.SetText(configFile_FAIL).Find() '// The Minimum(1) on hostRule causes it to have 0 matches if none are found. If hostRule.Matches.Count() > 0 And portRule.Matches.Count() > 0 Then Console.WriteLine("Config file is valid.") Else Console.WriteLine("Config file is invalid.") If hostRule.Matches.Count() = 0 Then Console.WriteLine($"- Reason: Host rule failed (found {hostRule.Matches.Count()}, expected 1).") End If End If End Using End Sub End Module