複雑なクエリとフィルタリングに 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 は括弧に一致し、単一の項目に対してうまく機能します。
正規表現は次のようになります
@"\((.*?)\)"
ネストされたブラケットと一致するように正規表現を使用する方法が必要であり、助けていただければ幸いです。