private static string CreateRegex(WordCriteriaContract word) { var regexBuilder = new StringBuilder(); regexBuilder.Append("^"); if (!string.IsNullOrEmpty(word.ExactMatch)) { regexBuilder.Append(word.ExactMatch); } else { if (!string.IsNullOrEmpty(word.StartsWith)) { regexBuilder.Append("(").Append(word.StartsWith).Append(").*"); } if (word.Contains != null) { foreach (var innerWord in word.Contains.Where(innerWord => !string.IsNullOrEmpty(innerWord))) { regexBuilder.Append(".*(").Append(innerWord).Append(").*"); } } if (!string.IsNullOrEmpty(word.EndsWith)) { regexBuilder.Append(".*(").Append(word.EndsWith).Append(")"); } } regexBuilder.Append("$"); return(regexBuilder.ToString()); }
public static string Create(WordCriteriaContract word) { var stringBuilder = new StringBuilder(); if (!string.IsNullOrEmpty(word.ExactMatch)) { stringBuilder.Append(word.ExactMatch); } if (!string.IsNullOrEmpty(word.StartsWith)) { stringBuilder.Append(word.StartsWith).Append("%"); } if (word.Contains != null) { foreach (var innerWord in word.Contains.Where(innerWord => !string.IsNullOrEmpty(innerWord))) { stringBuilder.Append("%").Append(innerWord).Append("%"); } } if (!string.IsNullOrEmpty(word.EndsWith)) { stringBuilder.Append("%").Append(word.EndsWith); } // Escape unwanted characters stringBuilder.Replace("[", "[[]"); return(stringBuilder.ToString()); }
public static string Create(WordCriteriaContract word) { if (!string.IsNullOrEmpty(word.ExactMatch)) { return(NHibernateDao.EscapeQuery(word.ExactMatch)); } var stringBuilder = new StringBuilder(); if (!string.IsNullOrEmpty(word.StartsWith)) { stringBuilder.Append(word.StartsWith).Append(AnyStringWildcard); } if (word.Contains != null) { foreach (var innerWord in word.Contains.Where(innerWord => !string.IsNullOrEmpty(innerWord))) { stringBuilder.Append(AnyStringWildcard).Append(innerWord).Append(AnyStringWildcard); } } if (!string.IsNullOrEmpty(word.EndsWith)) { stringBuilder.Append(AnyStringWildcard).Append(word.EndsWith); } var escapedValue = NHibernateDao.EscapeQuery(stringBuilder.ToString()); return(escapedValue); }
private string GetRegexFromDisjunction(WordCriteriaContract disjunction) { if (!string.IsNullOrWhiteSpace(disjunction.ExactMatch)) { return(EscapeChars(disjunction.ExactMatch)); } var regexBuilder = new StringBuilder(); if (!string.IsNullOrWhiteSpace(disjunction.StartsWith)) { var escapedText = EscapeChars(disjunction.StartsWith.ToLower()); regexBuilder.Append(escapedText); } regexBuilder.Append(".*"); foreach (var contains in disjunction.Contains) { if (!string.IsNullOrWhiteSpace(contains)) { var escapedText = EscapeChars(contains.ToLower()); regexBuilder.Append(escapedText); regexBuilder.Append(".*"); } } if (!string.IsNullOrWhiteSpace(disjunction.EndsWith)) { var escapedText = EscapeChars(disjunction.EndsWith.ToLower()); regexBuilder.Append(escapedText); } return(regexBuilder.ToString()); }
private static void ConvertWildcardToRegex(WordCriteriaContract wordCriteria) { wordCriteria.StartsWith = ConvertWildcardToRegex(wordCriteria.StartsWith); wordCriteria.EndsWith = ConvertWildcardToRegex(wordCriteria.EndsWith); if (wordCriteria.Contains != null) { wordCriteria.Contains = wordCriteria.Contains.Select(ConvertWildcardToRegex).ToList(); } }