Функция Oracle REGEXP_SUBSTR
Описание
Функция REGEXP_SUBSTR используется для возврата подстроки, которая соответствует регулярному выражению в строке. Эта функция возвращает NULL, если совпадений не найдено. Эта функция может вернуть пустую строку, если регулярное выражение соответствует строке нулевой длины.
Синтаксис:
REGEXP_SUBSTR (source_char, pattern [, позиция [, вхождение [, match_param [, subexpr ] ] ] ] )
Параметры:
название | Описание |
---|---|
source_char | source_char - это символьное выражение, которое служит поисковым значением. Обычно это символьный столбец и может иметь любой из типов данных CHAR, VARCHAR2, NCHAR, NVARCHAR2, CLOB или NCLOB. |
шаблон | шаблон является регулярным выражением. Обычно это текстовый литерал и может иметь любой из типов данных CHAR, VARCHAR2, NCHAR или NVARCHAR2. Он может содержать до 512 байт. Если тип данных шаблона отличается от типа данных source_char, то Oracle Database преобразует шаблон в тип данных source_char. |
позиция | Позиция является положительным целым числом, указывающим символ source_char, с которого Oracle должен начать поиск. По умолчанию это 1, что означает, что Oracle начинает поиск с первого символа source_char. |
вхождение | вхождение - это положительное целое число, указывающее, какое вхождение шаблона в source_char должно искать Oracle. По умолчанию это 1, что означает, что Oracle ищет первое вхождение шаблона. Если вхождение больше 1, то база данных ищет второе вхождение, начинающееся с первого символа, следующего за первым вхождением шаблона, и так далее. Если вхождение больше 1, то база данных ищет второе вхождение, начинающееся с первого символа, следующего за первым вхождением шаблона, и так далее. |
match_param | match_parameter - текстовый литерал, который позволяет вам изменить поведение функции по умолчанию для соответствия. Этот аргумент влияет только на процесс сопоставления и не влияет на replace_string. Вы можете указать одно или несколько из следующих значений для match_parameter: |
subexpr | Для шаблона с подвыражениями subexpr является неотрицательным целым числом от 0 до 9, указывающим, какое подвыражение в шаблоне должно быть возвращено функцией. |
Относится к
Oracle 12c, Oracle 11g
Примеры: функция Oracle REGEXP_SUBSTR
В следующем примере проверяется строка, ища первую подстроку, ограниченную запятыми. База данных Oracle ищет запятую, за которой следует одно или несколько вхождений не запятых, за которыми следует запятая, и возвращает подстроку, включая начальную и конечную запятые.
SELECT
REGEXP_SUBSTR('the web development tutorial, from w3resource, w3resouce.com',',[^,]+,')
"REGEXPR_SUBSTR" FROM DUAL;
Пример вывода:
REGEXPR_SUBSTR ------------------ от w3resource,
В следующем примере проверяется строка, ищется http: //, за которым следует подстрока из одного или нескольких буквенно-цифровых символов и, необязательно, точка (.). Oracle ищет минимум три и максимум четыре вхождения этой подстроки между http: // и косой чертой (/) или концом строки.
SELECT
REGEXP_SUBSTR('/exercises',
'https://([[:alnum:]]+\.?){3,4}/?') "REGEXP_SUBSTR"
FROM DUAL;
Выход :
REGEXP_SUBSTR -------------------------- /
В этом примере аргумент subexpr используется для возврата первого подвыражения в pattern:
SELECT REGEXP_SUBSTR('1234567890', '(123)(4(56)(78))', 1, 1, 'i', 1)
"REGEXP_SUBSTR" FROM DUAL;
Пример вывода:
REGEXP_SUBSTR ------------------- 123
В этом примере используется аргумент subexpr для возврата четвертого подвыражения в шаблоне:
SELECT REGEXP_SUBSTR('1234567890', '(123)(4(56)(78))', 1, 1, 'i', 4)
"REGEXP_SUBSTR" FROM DUAL;
Пример вывода:
REGEXP_SUBSTR ------------------- 78
Предыдущая: REGEXP_REPLACE
Далее: ЗАМЕНА
Новый контент: Composer: менеджер зависимостей для PHP , R программирования