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