Regex 正则表达式转换为Oracle表达式-(\b |\d)(?i)INT(\b |\d)

Regex 正则表达式转换为Oracle表达式-(\b |\d)(?i)INT(\b |\d),regex,oracle,Regex,Oracle,我有这样一个正则表达式: (\b|\d)(?i)INT(\b|\d) 我想穿什么就穿什么 但当试图让它与Oracle的正则表达式一起工作时。。。我从这个开始: 选择从DUAL中找到的REGEXP|INSTR('INT','(\b|\d)(?i)INT(\b|\d)),其中1=1 各种各样的变化,但没有成功,希望得到一些帮助 注意:第一个参数“INT”当然是我要搜索的表中的一个字段,等等如果您计划只检查匹配项,您可以将\b分解为(^ |\W |\d)($\W |\d),并使用: 选择REGEXP_

我有这样一个正则表达式:

(\b|\d)(?i)INT(\b|\d)

我想穿什么就穿什么

但当试图让它与Oracle的正则表达式一起工作时。。。我从这个开始:

选择从DUAL中找到的REGEXP|INSTR('INT','(\b|\d)(?i)INT(\b|\d)),其中1=1

各种各样的变化,但没有成功,希望得到一些帮助


注意:第一个参数“INT”当然是我要搜索的表中的一个字段,等等

如果您计划只检查匹配项,您可以将
\b
分解为
(^ |\W |\d)
($\W |\d)
,并使用:

选择REGEXP_INSTR('INT','(^ |\W |\d)INT($|\W |\d)',1,1,0,'i')
这里,
(^ |\W |\d)INT($|\W |\d)
匹配

  • (^ |\W |\d)
    -字符串、非单词字符或数字的开头
  • INT
    -一个
    INT
    字符串
  • ($|\W |\d)
    -字符串结尾,或非单词字符或数字
第六个参数是match参数参数,
'i'
表示不区分大小写。因此,此函数将返回匹配项(参见第五个return_选项参数)的第一个匹配项(参见第四个匹配项参数)的第一个字符的位置,该位置从字符串中的第一个字符开始搜索(参见第三个位置参数)


要使用此单一正则表达式方法返回
INT
的确切位置是不可能的,由于
\W
将在开始时使用非单词字符。

这与
\b
的宽度为零不同,如果匹配了
\W
,则您将在匹配开始之前找到字符的索引。@MT0这里的要点是检查是否有匹配。这就足够了。