Как выделить время вместе с предлогом?
Имеется строка: "Нужно в 13:40 зайти в магазин" Что бы выделить время я использую регулярное выражение @"([01]?[0-9]|2[0-3])\W[0-9][0-9]; Можно ли с помощью регулярного выражения выделить время с предлогом 'в'? Вся проблема в том,что между предлогом и временем не всегда один пробел
C#
string message ="Нужно в 13:40 зайти в магазин";
string pattern = @"([01]?[0-9]|2[0-3])\W[0-9][0-9]";
Regex newReg = new Regex(pattern);
MatchCollection matches = newReg.Matches(message);
Ответы (1 шт):
Автор решения: Sergey Kovalev
→ Ссылка
Так и добавьте в начало регулярного выражения "в" с произвольным количеством пробелов, а лучше и табуляций.
string pattern = @"в\s+([01]?[0-9]|2[0-3])(\W[0-9][0-9])";
Если нужно ещё и удалять лишнее, и оставлять один единственный пробел, то можно сразу воспользоваться группами, и взять только нужное:
string message = "Нужно в 13:40 зайти в магазин";
string pattern = @"(в)\s+([01]?[0-9]|2[0-3])(\W[0-9][0-9])";
Regex newReg = new Regex(pattern);
MatchCollection matches = newReg.Matches(message);
// ... здесь проверить на успешный поиск
var example = $"{matches.First().Groups[1]} {matches.First().Groups[2]}{matches.First().Groups[3]}";