有没有办法在oracle表的varchar列中找到连续重复的字符,如1414、200200。 我们如何使用正则表达式实现它?
我没能用正则表达式实现它 我是我的例子,我可以连续重复一个数字,但不能得到一个模式
从 dual 中选择 regexp_substr('4120066' ,'([[:alnum:]])\1', 7,1,'i'); -- 得到预期的输出
从 dual 中选择 regexp_substr('6360360' ,'([[:alnum:]])\1', 7,1,'i'); -- 我也想选择这个,因为我有 360,然后是 360
最佳答案
你应该能够使用这样的东西:
[...] WHERE REGEXP_LIKE(field, '(\d+?)\1')
如果您正在寻找任何重复的字符,或者:
[...] WHERE REGEXP_LIKE(field, '^(\d+?)\1$')
如果要检查字段中的整个字符串。
\d+?
将匹配数字。
( ... )
将存储这些数字。
\1
指的是抓取的数字。
注意:将 \d
更改为 .
如果您不只检查数字。
关于regex - 如何在oracle列中查找连续重复的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22766334/