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