我有这样一个正则表达式:
(\b|\d)(?i)INT(\b|\d)
它可以按照我在https://regex101.com/上的要求工作
但是,当尝试使其与Oracle Regex一起使用时,我从以下内容开始:
SELECT REGEXP_INSTR('INT', '(\b|\d)(?i)INT(\b|\d)') AS FOUND FROM DUAL WHERE 1=1 ;
各种变化,但没有成功,希望能得到一些帮助
注意,第一个参数“ INT”当然是我要搜索的表中的字段,依此类推
如果您打算仅检查匹配项,则可以“分解”\b
为(^|\W|\d)
/($|\W|\d)
并使用:
SELECT REGEXP_INSTR('INT', '(^|\W|\d)INT($|\W|\d)', 1, 1, 0, 'i')
在这里,(^|\W|\d)INT($|\W|\d)
比赛
(^|\W|\d)
-字符串的开头,或非单词char或数字INT
-一个INT
字符串($|\W|\d)
-字符串末尾,或非单词char或数字。的第六个参数REGEXP_INSTR
是match参数,'i'
表示不区分大小写。所以,这个函数将返回第一次出现的第一个字符的位置(见第四次发生在比赛的参数)(见第五项return_option是从第一个字符搜索的字符串中的参数),(见第三个位置参数)
返回INT
使用此正则表达式方法的确切位置是不可能的,因为\W
在开始时会消耗一个非单词char。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句