Цены на хостинг Azure Docker для контейнеров

Вам нужен шаблон только с lookahead:

\s+(?=delim1|delim2)

\s+ будет соответствовать одному или нескольким пробелам (так как ваша строка содержит пробелы). Если не может быть пробелов, используйте \s* (но тогда вам нужно будет удалить пустые записи из результата). См. Демонстрацию regex . Если эти разделители должны быть целыми словами, используйте границы слова \b: \s+(?=\b(?:delim1|delim2)\b).

В C #:

addrArr = Regex.Split(inputText, string.Format(@"\s+(?={0})", string.Join("|", delimeters)));

Если разделители могут содержать специальные метасимволы регулярных выражений, вы будете необходимо запустить Regex.Escape в списке delimiters.

A C # demo :

var inputText = "substring1 delim1 substring2 delim2 substr3";
var  delimeters = new List { "delim1", "delim2" };
var addrArr = Regex.Split(inputText, 
        string.Format(@"\s+(?={0})", string.Join("|", delimeters.Select(Regex.Escape))));
Console.WriteLine(string.Join("\n", addrArr));

0
задан Zoinky 28 March 2019 в 06:06
поделиться