Регулярные выражения. Поиск как в 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);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д