#regex #oracle
#регулярное выражение #Oracle
Вопрос:
У меня есть данные в столбце, подобном этому
Test 20019-2000 test
Test 119 test
Test 19-EM
Test EM - 19
ИТАК, когда я делаю a REGEXP_LIKE(mesage,'19')
, он извлекает все 4 записи. Но мое требование заключается в том, что оно должно извлекать строки, в которых строка токена начинается с «19».
ПОЭТОМУ он должен извлекать только 3 и 4 строки. Пожалуйста, помогите мне в этом.
Заранее спасибо.
Ответ №1:
Oracle regexp не поддерживает традиционные операторы b
ограничения слов или <
. Но вы можете имитировать это, сопоставив начало строки ИЛИ несловесный символ непосредственно перед 19
.
Например, здесь я определяю слово как последовательность буквенно-цифровых символов. Итак, вам нужно
REGEXP_LIKE( mesage, '(A|W)19' )
Будет соответствовать 19
, fred 19
, fred.19
, но нет fred19
. Если вы хотите определить слово как не пробельное и, следовательно, не совпадающее fred.19
, измените его на
REGEXP_LIKE( mesage, '(A|s)19' )