I wanted to use SQL's "like" patterns to compare in .Net.
The function IsSqlLikeMatch works fine, but I've noticed that the search is case-sensitive.
It's also doesn't match % if there are multiple lines.
But it was easy to change by modifying IsMatch call to
return Regex.IsMatch(input, pattern, RegexOptions.IgnoreCase | RegexOptions.Singleline);
Note that it could be very serious performance hit, if the pattern is started with %.
E.g for patternsPattern='%Part1%Part2%' and long message (Length 30720) time spent 40 sec!
but for pattern 'Begin%Part1%Part2%' and the same long message time spent is almost 0 .The test code with time measured:
DateTime start = DateTime.Now;
DebugOutputHelper.TracedLine("IsSqlLikeMatch sPattern=" + sPattern + " errorMsg.Length " + errorMsg.Length + " Started " + start.ToString());
bRet = errorMsg.IsSqlLikeMatch(pattern);
TimeSpan timeDifference = DateTime.Now - start;
DebugOutputHelper.TracedLine("IsSqlLikeMatch sPattern="+ sPattern +" errorMsg.Length "+ errorMsg.Length +
" time spent " + timeDifference.ToString());