我有这个文字
"(Objectid < 200 OR ObjectID > 600) and (test or best) W/5 AND (apple OR 10a) AND (Objectid < 100 OR ObjectID > 500)"
我希望在上面的And
(从左边或右边)最近的Or
中包含包含子串( )
或W/digit
的字符串字符串,其中digit
是一个数字。
在上面的例子中,我应该得到(测试或最佳)(苹果OR 10a)
答案 0 :(得分:0)
试试:
var rgx = new Regex(@"(\([^)]*\))\WW/\d+\W(?:AND|OR|IN)\W(\([^)]*\))", RegexOptions.IgnoreCase);
var items = new List<Tuple<string,string>>();
var match = rgx.Match(subjectString);
while (match.Success) {
items.Add(new Tuple<string,string>(match.Groups[1].Value, match.Groups[2].Value));
match = match.NextMatch();
}