Пример #1
0
 /// <summary>
 /// 指定したワイルドカードに一致する箇所が、指定した入力文字列内に見つかるかどうかを判定します。
 /// </summary>
 /// <param name="input">一致する対象を検索する文字列</param>
 /// <param name="pattern">対象を検索するパターン</param>
 /// <param name="options">ワイルドカードのオプション</param>
 /// <returns>一致する対象が見つかった場合は<see langword="true" /></returns>
 public static bool IsMatch(string input, string pattern, WildCardOptions options = WildCardOptions.SinglePattern)
 {
     return(ConvertRegexPatterns(pattern, options).Any(x => Regex.IsMatch(input, x)));
 }
Пример #2
0
 /// <summary>
 /// ワイルドカードのパターンに対応する正規表現のパターンに変換します。
 /// </summary>
 private static IEnumerable <string> ConvertRegexPatterns(string wildCardPattern, WildCardOptions options)
 {
     if (string.IsNullOrEmpty(wildCardPattern))
     {
         return(Enumerable.Empty <string>());
     }
     else if (options.HasFlag(WildCardOptions.MultiPattern))
     {
         return(wildCardPattern.Split(new[] { Delimiter }, StringSplitOptions.RemoveEmptyEntries)
                .Select(ConvertRegexPattern));
     }
     else
     {
         return(new[] { ConvertRegexPattern(wildCardPattern) });
     }
 }
Пример #3
0
 /// <summary>
 /// インスタンスを初期化します。
 /// </summary>
 /// <param name="pattern">対象を検索するパターン</param>
 /// <param name="options">ワイルドカードのオプション</param>
 public WildCard(string pattern, WildCardOptions options = WildCardOptions.SinglePattern)
 {
     _regexes = ConvertRegexPatterns(pattern, options).Select(x => new Regex(x)).ToArray();
 }