2011-10-11 3 views
2

검색 나는 내가 REGEXP_LIKE(mesage,'19')을 할 때 모든 사 개 기록을 검색하는, SO이오라클 - 특정 문자열

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

같은 열에서 데이터를 가지고있다. 하지만 제 요구 사항은 토큰 문자열이 "19"로 시작하는 행을 가져와야한다는 것입니다.

그래서 3 번째와 4 번째 행만 가져와야합니다. 이것 좀 도와주세요.

미리 감사드립니다.

답변

3

오라클 정규 표현식은 일반 단어 바운드 연산자 \b 또는 \<을 지원하지 않습니다. 그러나 19 바로 전에 문자열의 시작 또는 단어가 아닌 문자를 매칭하여이를 시뮬레이션 할 수 있습니다.

예. 여기에서는 단어를 영숫자 순서로 정의합니다. 그래서 당신은 19, fred 19, fred.19 있지만 fred19 일치합니다

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

이 필요합니다. 단어를 공백이 아닌 것으로 정의하고 일치하지 않으려는 경우 을

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