我正在考虑为我的数据库提供OData
接口。我需要在字符串字段上允许正则表达式,即在OData $filter
条件下。
OData提供substringof()
,startswith()
和其他功能,但我在文档中找不到任何有关正则表达式的内容。
这可能吗?
这样的正则表达式函数可能看起来像:
/Customers?$filter=match(CompanyName, '^Al[a-z]+s Futterkiste') eq true
其中match()
是我刚刚编写的函数。
答案 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
祝你好运。