【问题标题】:RegExp Find Numbers that have All Same DigitsRegExp 查找具有所有相同数字的数字
【发布时间】:2014-06-16 20:12:52
【问题描述】:

我正在使用 Oracle 数据库,并想编写一个 REGEXP_LIKE 表达式来查找所有数字都相同的任何数字,例如“999999999”或“777777777”,而无需指定字段的长度。另外,我希望它也能够识别字符,例如“aaaaa”。

我可以在指定字段长度时让它工作,通过使用这个:

select * from table1
where regexp_like (field1, '^([0-9a-z])\1\1\1\1\1\1\1\1');

但我希望它能够对任何字段长度执行此操作。

例如,如果一个字段包含“7777771”,我不想在结果中看到它。

【问题讨论】:

  • ^([0-9a-z])\1+ 不起作用吗?
  • 不幸的是,它不起作用,它返回有任何连续数字的值。我只想要每个数字或值都相同的情况
  • @NDubonix: "它返回有任何连续数字的值" --- 这是不可能的。

标签: sql regex oracle


【解决方案1】:

试试这个:

^([0-9a-z])\1+$

Live demo

【讨论】:

  • 谢谢!它需要末端锚,现在可以完美运行。非常感谢!
  • @NDubonix 没问题,如果您没有任何其他问题,请将此问题标记为已解决:)
【解决方案2】:

你快到了。您只需要锚定正则表达式的末尾。

^([0-9a-z])\1+$

【讨论】:

  • 奇怪的是,有时一个相同但后来的答案如何得到所有的爱! +1 :)
猜你喜欢
  • 2023-03-10
  • 2013-11-26
  • 1970-01-01
  • 2015-07-14
  • 1970-01-01
  • 1970-01-01
  • 2011-07-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多