oracle regular expression - search for a particular string
I have a data in a column like this
Test 20019-2000 test
Test 119 test
Test 19-EM
Test EM - 19
SO, when I开发者_如何学JAVA do a REGEXP_LIKE(mesage,'19')
it is retrieving all the 4 records. But my requirement is that , it should fetch the rows in which, the token string is starting with "19".
SO it should fetch 3 and 4th row only. Please help me on this.
Thanks in advance.
Oracle regexp does not support the traditional word boundry operators \b
or \<
. But you can simulate this by matching the start of string OR a non-word character immediately before the 19
.
E.g. Here I define a word as being a sequence of alphanumerics. So you need
REGEXP_LIKE( mesage, '(\A|\W)19' )
Will match 19
, fred 19
, fred.19
, but not fred19
. If you do want to define a word as being non whitespace, and thus not match fred.19
change it to
REGEXP_LIKE( mesage, '(\A|\s)19' )
精彩评论