Orient-db正则表达式修饰符



我正在使用orient-db数据库,并且我有正则表达式模式匹配的问题。我真的需要在请求中出现不区分大小写的修饰符,但不知何故它没有像我期望的那样工作。

查询:

select from UserAccounts where email MATCHES '^ther.*'

返回预期的小写匹配项。

每当我尝试添加修饰符时,外部分隔符即

select from UserAccounts where email MATCHES '^ther.*i'

得到一个空集合。实际上,只要存在分隔符,查询就返回一个空集合。

如果没有办法附加修饰符,我可能会将每个'alpha'字符替换为方括号中的表达式,即

select from UserAccounts where email MATCHES "^[tT][hH][eE][rR].*"

使用Java不区分大小写的regex修饰符(来自Pattern的特殊结构)在OrientDB 1.7.9中工作-对于您的示例:

select from UserAccounts where email MATCHES '(?i)^ther.*'

(参见:Pattern - Special structures)

我还对相应的OrientDB问题添加了注释

遗憾的是,没有办法在匹配操作符中指定正则表达式的修饰符。

现在好的解决方案是创建一个自定义函数,在那里你可以使用JS regexp的全部功能。

但是我们绝对应该在MATCHES中添加指定修饰符的能力,你能创建一个功能请求吗?

最新更新