Можно ли использовать Regex.Split (), чтобы разделить строку разделителем, но только если за разделителем не следует какой-либо символ.
Например, я хотел бы разбить строку по разделителю ":", но игнорировать разделитель ": =". Этот код:
string input = "One : Two:Three:=Four";
string pattern = @":";
Regex reg = new Regex(pattern);
var parts = reg.Split(input):
возвращает 4 части: «Один», «Два», «Три» и «= Четыре».
Я попытался изменить образец следующим образом:
string input = "One : Two:Three:=Four";
string pattern = @":[^=]";
Regex reg = new Regex(pattern);
var parts = reg.Split(input):
Теперь я получаю 3 части: «Один», «Два» и «hree: = Четыре». Что должно быть изменено в шаблоне, чтобы правильно начать начало третьей части, например: «Три: = Четыре».
Как насчет дополнения приведенного выше примера дополнительным определением начального / конечного разделителя, которое также отключает разделение по определенному разделителю. Например:
string input = "One : Two:Three:=Four {Comment:String:="This is a comment";AddditionalInfo:String:="This is some additional info";}";
Результат должен содержать следующие 3 части: «Один», «Два» и «Три: = Четыре {Комментарий: Строка: =« Это ...} ».
Я имею в виду, что разделитель ":" должен игнорироваться, если он присутствует между разделителями "{" и "}".