public static void Main()
var recordValue = @"A+\&+B+Ford+Sales+Ltd";
var wildcardValue = @"*A+&+B+Ford+Sales+Ltd*";
Console.WriteLine(ValueMatches(recordValue, wildcardValue));
private static string RemoveCommas(string s)
return s.Replace(",","");
private static string ReplaceAmpersand(string s)
return s.Replace("&",@"\&");
private static bool ValueMatches(string value, string substring)
value = RemoveCommas(value);
substring = ReplaceAmpersand(substring);
if (substring.StartsWith("*") && substring.EndsWith("*"))
return value.Contains(substring.Trim('*').Trim());
if (substring.StartsWith("*"))
return value.EndsWith(substring.TrimStart('*').TrimStart());
if (substring.EndsWith("*"))
return value.StartsWith(substring.TrimEnd('*').TrimEnd());