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