Я хочу заменить первые цифры снизу и отобразить 7-ОДИН УНИВЕРМАГ.
20991 7-ОДИННАДЦАТЫЙ МАГАЗИН
Ну, вам даже не нужны регулярные выражения для этого - старый добрый SUBSTR
+ INSTR
отлично справляется со своей работой (это RES2). Если вы хотите регулярное выражение, то этот шаблон: ^\d+
делает это - он говорит:
^
привязка к началу строки
\d+
взять все существующие цифры (до первого нецифрового символа, который является пробелом)
Пример:
SQL> with test (col) as
2 (select '20991 7-ELEVEN STORE' from dual)
3 select
4 regexp_replace(col, '^\d+') res1,
5 substr(col, instr(col, ' ') + 1) res2
6 from test;
RES1 RES2
--------------- --------------
7-ELEVEN STORE 7-ELEVEN STORE
SQL>
[EDIT]
По состоянию на первый отправленный вами запрос (я не понял, что это был вопрос ): если вы хотите выбрать первое «слово» из этой строки, я бы не использовал REGEXP_REPLACE
но (REGEXP_
) SUBSTR
:
SQL> with test (col) as
2 (select '7ELEVEN USA' from dual)
3 select regexp_substr(col, '\w+') res1,
4 substr(col, 1, instr(col, ' ') - 1) res2
5 from test;
RES1 RES2
------- -------
7ELEVEN 7ELEVEN
SQL>