Выделение подстроки regex - C#
Формулировка задачи:
Доброго времени суток С устройств поступают строки
необходимо с помощью регулярных выражений Regex.Matches определить что в этой строке присутствует ключ +CBC: и выделить последние цифры после запятой. Количество цифровых знаков может изменяться от 1 до 3.
Для строки
поиск выполняю так
Работает но как частный случай Если приходит вторая строка условие поиска надо менять
Со второй строки необходимо выделить 4.585V Здесь также количество знаков меняется.
"\r\n+CBC: 0,75\r\n\r\nOK\r\n"
"\r\n+CBC: 0,75,4.585V\r\n\r\nOK\r\n"
"\r\n+CBC: 0,75\r\n\r\nOK\r\n"
var cbc = Convert.ToInt16(Regex.Matches(Sender.ToString(), @"(\d{1,3})")[1].Value.Replace(",", ""));
Решение задачи: «Выделение подстроки regex»
textual
Листинг программы
string[] input = { "\r\n+CBC: 0,75,4.585V\r\n\r\nOK\r\n", "\r\n+CBC: 0,75\r\n\r\nOK\r\n" }; string pattern = @"(?<=CBC:\s*).*,(?<last>[^\r\n]*)"; var regex = new Regex(pattern, RegexOptions.Multiline); Array.ForEach(input, str => { var match = regex.Match(str); if (match.Success) { Console.WriteLine($"'{Regex.Escape(str)}' contains 'СВС', value = {match.Groups["last"].Value}"); } else { Console.WriteLine($"'{Regex.Escape(str)}' doesn't contain 'СВС'"); } Console.WriteLine(); })
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д