我有可能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的数目? ?
你知道哪一个? – Manolete 2011-12-14 13:04:37
我想ANTLR,但我不知道推荐它。在那里挂一段时间,看看还有什么弹出。 – 2011-12-14 13:16:19