首页 > 解决方案 > REGEXP 验证特定数字

问题描述

如何使用 搜索数组中的特定数字REGEXP?我有一个数组,需要验证它是否有特定的数字。
例如:[5,2,1,4,6,19]我正在寻找数字 1,但只是数字 1,而不是任何包含数字 1 的数字。


我不得不这样做:

case when REGEXP_INSTR(JSON_QUERY(MY_JSON_COLUMN,'$.path') , '[[]{1}[1][,]')<>0
            or REGEXP_INSTR(JSON_QUERY(MY_JSON_COLUMN,'$.path') , '[,]{1}[1][,]{1}')<>0
            or REGEXP_INSTR(JSON_QUERY(MY_JSON_COLUMN,'$.path') , '[,]{1}[1][]]')<>0
            or REGEXP_INSTR(JSON_QUERY(MY_JSON_COLUMN,'$.path') , '[[]{1}[1][]]') <>0 
      then 'DIGIT_ONE' else 'NO_DIGIT_ONE' 
 end

有没有更简单的?

标签: sqljsonoracle

解决方案


您可以使用

(^|\D)1(\D|$)

这将搜索1不包含其他数字。

请参阅此正则表达式演示

细节

  • (^|\D)- 字符串或非数字开头
  • 1- 一个1字符
  • (\D|$)- 非数字或字符串结尾。

推荐阅读