我们正在尝试使用 url 进行复杂的查询和过滤。
我设法使用表达式树以及正则表达式和字符串操作的混合来获得一些更简单的解析,但随后我们查看了一个更复杂的字符串示例
var filterstring="(|(^(categoryid:eq:1,2,3,4)(categoryname:eq:condiments))(description:lk:”*and*”))";
我希望能够将其解析为部分,但也允许它是递归的。我希望输出看起来像:
item[0] (^(categoryid:eq:1,2,3,4)(categoryname:eq:condiments)
item[1] description:lk:”*and*”
从那里我可以剥离 item[0] 部分以获得
categoryid:eq:1,2,3,4
categoryname:eq:condiments
目前我正在使用 RegEx 和字符串来查找 | ^ 知道它是 AND 还是 OR,RegEx 匹配括号并且适用于单个项目,当我们嵌套我正在努力的值时。
正则表达式看起来像
@"\((.*?)\)"
我需要一些使用正则表达式来匹配嵌套括号的方法,我们将不胜感激。