Получить все цифры между двумя словами с помощью регулярного выражения - C#

Узнай цену своей работы

Формулировка задачи:

Добрый день! Задача следующая: с помощью одной регулярки из текста такого вида:
Листинг программы
  1. oooooostart1,2.3ooooo4,5ooo6oo7start8,9o
достать все цифры, которые находятся между start и o. Разделитель - запятая или точка. Групп start-o может быть хоть сколько, цифр в группах - хоть сколько. (результат здесь будет 1 2 3 8 9) Похожие штуки возвращают только одно значение:
Листинг программы
  1. start(?:\d|\.|,|)*(\d)(?:\.|,|o|\d)*o

Решение задачи: «Получить все цифры между двумя словами с помощью регулярного выражения»

textual
Листинг программы
  1. string str = @"oooooostart1,2.3ooooo4,5ooo6oo7start8,9oooostart65,13,25oo";
  2. List<int> Numbers = new List<int>();
  3. int start = 1;
  4. int end = 0;
  5. while (start - end != 0)
  6. {
  7.     start = str.IndexOf("start", end);
  8.     if (start == -1)
  9.         break;
  10.     start += 5;
  11.     end = str.IndexOf("o", start);
  12.     if (end == -1)
  13.         break;
  14.  
  15.     string[] nums = str.Substring(start, end - start).Split(new char[] { ',', '.' });
  16.     foreach (string num in nums)
  17.     {
  18.         int val;
  19.         if (Int32.TryParse(num, out val))
  20.             Numbers.Add(val);
  21.     }
  22. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.7 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы