oracle正则表达式 - 搜索特定字符串

时间:2011-10-11 02:39:04

标签: regex oracle

我在这样的列中有数据

Test 20019-2000 test
Test 119 test
Test 19-EM
Test EM - 19

所以,当我做REGEXP_LIKE(mesage,'19')时,它正在检索所有4条记录。但我的要求是,它应该获取行,其中令牌字符串以“19”开头。

所以它应该仅获取第3行和第4行。请帮帮我。

提前致谢。

1 个答案:

答案 0 :(得分:3)

Oracle regexp不支持传统的单词边界运算符\b\<。但是你可以通过在19之前匹配字符串OR或非单词字符的开头来模拟这个。

E.g。在这里,我将一个单词定义为一系列字母数字。所以你需要

REGEXP_LIKE( mesage, '(\A|\W)19' )

将匹配19fred 19fred.19,但不匹配fred19。如果您确实要将单词定义为非空格,因此不匹配fred.19将其更改为

REGEXP_LIKE( mesage, '(\A|\s)19' )