我在这样的列中有数据
Test 20019-2000 test
Test 119 test
Test 19-EM
Test EM - 19
所以,当我做REGEXP_LIKE(mesage,'19')
时,它正在检索所有4条记录。但我的要求是,它应该获取行,其中令牌字符串以“19”开头。
所以它应该仅获取第3行和第4行。请帮帮我。
提前致谢。
答案 0 :(得分:3)
Oracle regexp不支持传统的单词边界运算符\b
或\<
。但是你可以通过在19
之前匹配字符串OR或非单词字符的开头来模拟这个。
E.g。在这里,我将一个单词定义为一系列字母数字。所以你需要
REGEXP_LIKE( mesage, '(\A|\W)19' )
将匹配19
,fred 19
,fred.19
,但不匹配fred19
。如果您确实要将单词定义为非空格,因此不匹配fred.19
将其更改为
REGEXP_LIKE( mesage, '(\A|\s)19' )