Регулярное выражение C# подсчет

257
25 октября 2017, 03:04

Есть строка. В этой строке есть ключевое слово, допустим, "switch". Так же есть "do". Мне необходимо узнать, сколько раз встречается "do" ПОСЛЕ "switch" При этом интересует вхождение после первого switch. Как такое реализовать при помощи регулярного выражения?

Answer 1

Можно и без регулярок:

string s = "do do switchdo do od d o dododoodo do doswitch";
var parts = s.Split(new[] { "switch" }, StringSplitOptions.None);
var doCount = parts.Skip(1).Sum(p => p.Split(new[] { "do" }, StringSplitOptions.None).Length - 1);
Console.WriteLine(doCount);

Сплитим по "switch", начинаем подсчет пропуская первую часть (она как раз до первого вхождения "switch"): для каждой части сплитим по "do" и вычитаем 1 из количества частей. Всё складываем.

READ ALSO
XAML C# как сохранять и загружать данные dataSet dataGrid в файл

XAML C# как сохранять и загружать данные dataSet dataGrid в файл

Подскажите пожалуйста, как в XAML C# использовать таблицу в памяти без базы данных, сохранять из таблицы DataGrid данные в файл (допустим вtxt) и загружать...

283
Ожидать указания сервера C#

Ожидать указания сервера C#

Программа на C# запросит сделать сервер несколько задач, которые могут занять приличное времяЗадача будет поделена на этапы и когда сервер...

284
Xamarin - какие библиотеки использовать для написания сканера bluetooth и wifi?

Xamarin - какие библиотеки использовать для написания сканера bluetooth и wifi?

Мне необходимо написать кроссплатформенное приложение для поиска устройств bluetooth и сетей WiFi с выводом информации об устройствах и сетяхПисал...

246
SpellCheck в C#

SpellCheck в C#

"TextBox не содержит определения для SpellCheck, и не удалось найти метод расширения "SpellCheck", принимающий тип TextBox в качестве первого аргумента"

287