OData $过滤条件中的正则表达式?

时间:2012-11-23 09:03:47

标签: regex odata

我正在考虑为我的数据库提供OData接口。我需要在字符串字段上允许正则表达式,即在OData $filter条件下。

OData提供substringof()startswith()和其他功能,但我在文档中找不到任何有关正则表达式的内容。 这可能吗?

这样的正则表达式函数可能看起来像:

/Customers?$filter=match(CompanyName, '^Al[a-z]+s Futterkiste') eq true

其中match()是我刚刚编写的函数。

1 个答案:

答案 0 :(得分:1)

协议没有任何内置的正则表达式运算符用于过滤。但是,你可以实现你想要的(或类似的)如下:

GET http://server/Customers?$filter=match(CompanyName=$it/CompanyName, Regex='^Al[a-z]+s Futterkiste') eq true

在这种情况下,你必须有一个函数'match',它有两个参数:CompanyName和Regex。该函数返回true / false,具体取决于公司名称匹配与否。然后,对于每个公司,调用匹配函数。

当然,实现取决于您使用的服务器端技术。

您可以在此处阅读更多内容:http://www.odata.org/media/30002/OData.html#inlineparametersyntax

祝你好运。