regex - 如何在oracle列中查找连续重复的字符

标签 regex oracle

有没有办法在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/

相关文章:

ruby-on-rails - Rails - 不能以字符开头或结尾的用户名

python - 根据字符串中的特定逗号有选择地将字符串拆分为元组列表

regex - 如何用vim中的单词替换uuid列

java - oracle jdbc中的PreparedStatement和setTimestamp

oracle - 我如何将数据库大小从 11GB 增加到 20Gb 以上

c# - 语法高亮性能问题

php - 如何检查字符串是否是有效的 XML 元素名称?

java - 获取 Java.sql.SQLException : ORA-01461: can bind a LONG value only for insert into a LONG column. 。插入数据时

oracle - Jetbrains Datagrip/PHPStorm 如何执行 oracle 程序?

sql - 两个表相互引用 : How to insert row in an Oracle database?