регулярное выражение оракула - поиск определенной строки - PullRequest
2 голосов
/ 11 октября 2011

У меня есть данные в столбце, подобном этому

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

ТАК, когда я делаю REGEXP_LIKE(mesage,'19'), он получает все 4 записи.Но мое требование заключается в том, что он должен извлекать строки, в которых строка токена начинается с «19».Пожалуйста, помогите мне в этом.

Заранее спасибо.

1 Ответ

3 голосов
/ 11 октября 2011

Oracle regexp не поддерживает традиционные операторы ограничения слова \b или \<.Но вы можете смоделировать это, сопоставив начало строки ИЛИ несловесный символ непосредственно перед 19.

Например. Здесь я определяю слово как последовательность буквенно-цифровых символов.Поэтому вам нужно

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

Будет соответствовать 19, fred 19, fred.19, но не fred19.Если вы хотите определить слово как не являющееся пробелом и, следовательно, не соответствовать fred.19, измените его на

REGEXP_LIKE( mesage, '(\A|\s)19' )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...