我想问一下,如果一个集合有3个实例,在regexp中是否可以在给定的数字中标识。
例如:

123456141414
123456171717

在上面的例子中,我们有3x14和3x17,因此它应该返回regexp_like查询中的数字。
但它应该返回3倍于相同数字的所有事件。

最佳答案

请试试这个:

SELECT INPUT_TEXT, REGEXP_SUBSTR(INPUT_TEXT, '([[:digit:]]{2})\1\1', 6) EXTRACTED
FROM MY_TABLE
WHERE REGEXP_INSTR(INPUT_TEXT, '([[:digit:]]{2})\1\1', 6) > 0

输入表值:
 INPUT_TEXT
--------------
 123456141414
 123456171717
 123456111111
 141414123456
 123456121234

查询结果:
 INPUT_TEXT        EXTRACTED
--------------   --------------
 123456111111       111111
 123456141414       141414
 123456171717       171717

10-08 18:55