public static List <RuleModel> Match(string url) { url = url.Trim().ToLower(); var domain = new Uri(url).GetDomain(); using (var db = new LiteDatabase(@"Rules.db")) { var col = db.GetCollection <RuleModel>("rules"); var rules = col.Find(Query.Where("Domain", m => m.AsString == domain)).ToList(); var masks = rules.Select(m => m.Expression).ToArray(); var mask = Wildcard.MaxMatch(url, masks); return(rules.Where(m => m.Expression == mask).ToList()); } }