Регулярные выражения. Поиск как в Windows со "*" - C#

Узнай цену своей работы

Формулировка задачи:

Попытался сделать поиск как в Windows когда "*" означает любой символ. Заранее оговорюсь, что поиск осуществляю для отдельных слов, а не для длинного текста. Работает вроде ничего, но не находит слова с символом "минус" (-). Код далек от совершенства я так подозреваю так что предложения по оптимизации ПРИВЕТСТВУЮТСЯ.
static void Main(string[] args)
        {
            #region
            
            Console.WriteLine("\nВведите слово для поиска :");
            string inp = Console.ReadLine();
            string replace="\\w*";
            Regex regex=new Regex("\\*", RegexOptions.IgnoreCase);
            string regstr = "";
            if (inp == "")
            {
                regstr = "\\w*";
            }
            else
            {
                regstr = "^" + regex.Replace(inp, replace) + "$";
            }
            Console.WriteLine("\n*** {0}", regstr);
//--------------------------------------------------------------------------------
            string[] test =
            {
            "L_tube_4", "water", "wall54", "Y-drinage", "87;lkjl;", "slin", "lkjslk", "drink", "L_hyf",
            "L_spr_spr", "L_spr_tube_3"
            };
            Console.Write("\nlength string : {0}", test.Length); ////////////////////////////// 
            Regex reg = new Regex(@regstr, RegexOptions.IgnoreCase);
            foreach (string str in test)
            {
                if (reg.IsMatch(str))
                {
                    Console.WriteLine("\n***----------------------------------------\n" + str);
                }
            }
            Console.ReadKey();
 
            #endregion
      }

Решение задачи: «Регулярные выражения. Поиск как в Windows со "*"»

textual
Листинг программы
new Regex(@regstr, RegexOptions.IgnoreCase);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.222 из 5
Похожие ответы