一尘不染

Orient-DB正则表达式修饰符

sql

我正在使用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].*"

但是我对这种解决方案并不满意。


阅读 208

收藏
2021-03-08

共1个答案

一尘不染

使用Java不区分大小写的regex修饰符(来自Pattern的特殊构造)可在OrientDB 1.7.9中使用-例如:

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

(另请参见:模式-
特殊构造

我也对相应的OrientDB问题添加了评论。

2021-03-08