Получить все цифры между двумя словами с помощью регулярного выражения - C#
Формулировка задачи:
Добрый день!
Задача следующая: с помощью одной регулярки из текста такого вида:
достать все цифры, которые находятся между start и o. Разделитель - запятая или точка. Групп start-o может быть хоть сколько, цифр в группах - хоть сколько. (результат здесь будет 1 2 3 8 9)
Похожие штуки возвращают только одно значение:
Листинг программы
- oooooostart1,2.3ooooo4,5ooo6oo7start8,9o
Листинг программы
- start(?:\d|\.|,|)*(\d)(?:\.|,|o|\d)*o
Решение задачи: «Получить все цифры между двумя словами с помощью регулярного выражения»
textual
Листинг программы
- string str = @"oooooostart1,2.3ooooo4,5ooo6oo7start8,9oooostart65,13,25oo";
- List<int> Numbers = new List<int>();
- int start = 1;
- int end = 0;
- while (start - end != 0)
- {
- start = str.IndexOf("start", end);
- if (start == -1)
- break;
- start += 5;
- end = str.IndexOf("o", start);
- if (end == -1)
- break;
- string[] nums = str.Substring(start, end - start).Split(new char[] { ',', '.' });
- foreach (string num in nums)
- {
- int val;
- if (Int32.TryParse(num, out val))
- Numbers.Add(val);
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д