У меня есть строка, которая может иметь несколько комбинаций AND и OR следующим образом:
string display = "every ((Id2=Event(MachineInfo='M3',UserInfo='U3')) or (Id1=Event(MachineInfo='M2',UserInfo='U2')) and (Id0=Event(MachineInfo='M1',UserInfo='U1')))"
Сейчас у меня есть неэффективный способ поймать только первые MachineInfo и UserInfo, но я не знаю, какчтобы получить остальные элементы строки:
const string machineinfo = @"MachineInfo='(?<MachineInfo>[^']+)";
const string userinfo = @"UserInfo='(?<UserInfo>[^']+)";
string machineName = display.Contains("MachineInfo") ?
Regex.Matches(display, machineinfo)[0].Groups[1].Value : "ANY";
string userName = display.Contains("UserInfo") ?
Regex.Matches(display, userinfo)[0].Groups[1].Value : "ANY";
Что я могу сделать, чтобы получить все MachineInfos и UserInfos, не зная количества AND и OR, которые я могу иметь в отображаемой строке ??