RegEx以任何顺序匹配String令牌?

And*_*ndy 3 regex sql oracle plsql

我正在寻找一个能够以任何顺序匹配令牌的Oracle正则表达式.

例如,说我正在寻找"一二".

我希望它能同时匹配,"一个标记二","另外一个"

令牌的数量可能会大于2,因此生成正则表达式的排列将是一个短暂的.

有没有比这更简单的方法来做到这一点

'(ONE.*TWO)|(TWO.*ONE)'

 i.e

select * 
from some_table t
where regexp_like(t.NAME_KEY, '(ONE.*TWO)|(TWO.*ONE)')
Run Code Online (Sandbox Code Playgroud)

OMG*_*ies 6

这是使用全文搜索(FTS)功能的替代查询:

WHERE CONTAINS(t.name_key, 'ONE & TWO') > 0
Run Code Online (Sandbox Code Playgroud)

有关标准评估说明,请参阅优先级示例.

有关: