2

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

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

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

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

match()我刚刚编写的函数在哪里。

4

1 回答 1

1

该协议没有任何用于过滤的内置正则表达式运算符。但是,您可以实现您正在寻找的(或类似的东西),如下所示:

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

在这种情况下,您必须有一个函数“match”,它需要两个参数:CompanyName 和 Regex。该函数根据公司名称是否匹配返回真/假。然后,对于每个公司,调用匹配函数。

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

你可以在这里阅读更多:http ://www.odata.org/media/30002/OData.html#inlineparametersyntax

祝你好运。

于 2012-11-26T18:44:59.743 回答