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

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

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

Попытался сделать поиск как в Windows когда "*" означает любой символ. Заранее оговорюсь, что поиск осуществляю для отдельных слов, а не для длинного текста. Работает вроде ничего, но не находит слова с символом "минус" (-). Код далек от совершенства я так подозреваю так что предложения по оптимизации ПРИВЕТСТВУЮТСЯ.
Листинг программы
  1. static void Main(string[] args)
  2. {
  3. #region
  4. Console.WriteLine("\nВведите слово для поиска :");
  5. string inp = Console.ReadLine();
  6. string replace="\\w*";
  7. Regex regex=new Regex("\\*", RegexOptions.IgnoreCase);
  8. string regstr = "";
  9. if (inp == "")
  10. {
  11. regstr = "\\w*";
  12. }
  13. else
  14. {
  15. regstr = "^" + regex.Replace(inp, replace) + "$";
  16. }
  17. Console.WriteLine("\n*** {0}", regstr);
  18. //--------------------------------------------------------------------------------
  19. string[] test =
  20. {
  21. "L_tube_4", "water", "wall54", "Y-drinage", "87;lkjl;", "slin", "lkjslk", "drink", "L_hyf",
  22. "L_spr_spr", "L_spr_tube_3"
  23. };
  24. Console.Write("\nlength string : {0}", test.Length); //////////////////////////////
  25. Regex reg = new Regex(@regstr, RegexOptions.IgnoreCase);
  26. foreach (string str in test)
  27. {
  28. if (reg.IsMatch(str))
  29. {
  30. Console.WriteLine("\n***----------------------------------------\n" + str);
  31. }
  32. }
  33. Console.ReadKey();
  34. #endregion
  35. }

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

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

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


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

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

9   голосов , оценка 4.222 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы