Вывод слов разделенных символами с помощью Regex
У меня есть текст и мне необходимо выделить и записать слова, разделённые символами «_.,;:\n\t!?». Я знаю, что это можно сделать с помощью Regex, но не могу предположить, как должен выглядеть подобный паттерн? Кто нибудь может помочь мне с этим на С#?
Ответы (1 шт):
Автор решения: Antosha
→ Ссылка
Проще всего это сделать, используя метод String.Split. В примере ниже я добавил в список разделителей отсутствующие в тексте вопроса пробел и \r:
string text =
@"Зима!.. Крестьянин, торжествуя,
На дровнях обновляет путь;
Его лошадка, снег почуя,
Плетётся рысью как-нибудь";
var separators = new char[] { ' ', '_', '.', ',', ';', ':', '\r', '\n', '\t', '!', '?' };
string[] words = text.Split(separators, StringSplitOptions.RemoveEmptyEntries);
Console.OutputEncoding = Encoding.UTF8;
foreach (string word in words)
Console.WriteLine(word);
Выдача:
Зима
Крестьянин
торжествуя
На
дровнях
обновляет
путь
Его
лошадка
снег
почуя
Плетётся
рысью
как-нибудь
Если всё же требуется использовать регулярное выражение:
foreach (Match match in Regex.Matches(text, @"[^ _.,;:\r\n\t!?]+"))
Console.WriteLine(match);