кодесурса
«Oracle

Функция Oracle REGEXP_INSTR

script1adsense2code
script1adsense3code

Описание

Функция Oracle REGEXP_INSTR используется для возврата местоположения шаблона регулярного выражения в строке. Эта функция позволяет найти подстроку в строке, используя сопоставление с шаблоном регулярного выражения. Если совпадений не найдено, функция возвращает 0.

Синтаксис:

 REGEXP_INSTR (source_char, pattern
              [, позиция
                 [, вхождение
                    [, return_opt
                       [, match_param
                          [, subexpr]
                       ]
                    ]
                 ]
              ]

Параметр:

название Описание Типы данных
source_char Строка для поиска. CHAR, VARCHAR2, NCHAR, NVARCHAR2, CLOB или NCLOB.
шаблон шаблон является регулярным выражением. CHAR, VARCHAR2, NCHAR или NVARCHAR2.
позиция Необязательный. Позиция является положительным целым числом, указывающим символ source_char, с которого начинается поиск. Если опущено, по умолчанию используется значение 1, которое является первой позицией в строке.
вхождение Необязательный. Это положительное целое число, указывающее, какое вхождение шаблона в source_char ищется. По умолчанию используется значение 1, что означает, что эта функция ищет первое вхождение шаблона.
return_opt Если указать 0, то он возвращает позицию первого символа вхождения. Это значение по умолчанию, и если указать 1, то оно возвращает позицию символа после вхождения.
match_param Необязательный. Это позволяет вам изменять поведение соответствия для функции REGEXP_COUNT.
subexpr Необязательный. Подвыражение представляет собой целое число от 0 до 9, указывающее, какое подвыражение в шаблоне является целью функции. Если значение равно нулю, возвращается позиция всей подстроки, которая соответствует шаблону. Если больше нуля, возвращается позиция фрагмента подстроки, которая соответствует номеру подвыражения subexpr в соответствующей подстроке. Функция возвращает ноль, если шаблон не имеет хотя бы субвыражений subexpr. Значение null subexpr возвращает NULL. Значение по умолчанию для subexpr равно нулю.

Вот список операторов форматирования шаблона:

оператор Описание
/ д Цифровой символ
/ D Нецифровый персонаж.
/ ш Слово персонажа.
/ W Несловесный персонаж.
/ s Пробельный символ.
/ S Не пробельный символ.
/ A Соответствует только в начале строки или перед символом новой строки в конце строки.
/ Z Соответствует только в конце строки.
*? Соответствует предыдущему элементу шаблона 0 или более раз (не допускается).
+? Соответствует предыдущему элементу шаблона 1 или более раз (не разрешено).
?? Соответствует предыдущему элементу шаблона 0 или 1 раз (не разрешено).
{П}? Соответствует предыдущему элементу шаблона ровно n раз (нон-жадность).
{П,}? Соответствует предыдущему элементу шаблона по крайней мере n раз (не разрешено).
{П, т}? Соответствует предыдущему элементу шаблона, по крайней мере, n, но не более, чем mtimes (nongreedy).

Вот список операторов регулярных выражений и метасимволов:

оператор Описание
/ Символ обратной косой черты может иметь четыре различных значения в зависимости от контекста. Он может: стоять за себя, цитировать следующего символа, ввести оператора, ничего не делать
* Соответствует нулю или более вхождений
+ Соответствует одному или нескольким вхождениям
? Соответствует нулю или одному вхождению
| Оператор чередования для указания альтернативных совпадений
^ По умолчанию соответствует началу строки. В многострочном режиме он соответствует началу любой строки в любом месте строки источника.
$ Соответствует концу строки по умолчанию. В многострочном режиме он соответствует концу любой строки в любой части строки источника.
, Соответствует любому символу в поддерживаемом наборе символов, кроме NULL
[] Выражение в скобках для указания списка соответствия, который должен соответствовать любому из выражений, представленных в списке. Несоответствующее выражение списка начинается с дифракционного символа (^) и указывает список, который соответствует любому символу, кроме выражений, представленных в списке. Чтобы указать правую скобку (]) в выражении в скобках, поместите ее сначала в список (после начального обхода (^), если есть). Чтобы указать дефис в выражении в скобках, поместите его сначала в список (после начального окружности (^), если есть), последний в списке или в качестве конечной точки диапазона в выражении диапазона.
() Группирующее выражение, рассматриваемое как единое подвыражение
{Т} Соответствует ровно м раз
{М,} Соответствует по крайней мере м раз
{Т, п} Совпадает не менее m раз, но не более n раз
/ п Выражение обратной ссылки (n - это цифра от 1 до 9) соответствует n-му подвыражению, заключенному между '(' и ')', предшествующим / n
[..] Определяет один элемент сопоставления и может быть элементом из нескольких символов (например, [.ch.] На испанском языке)
[::] Определяет классы символов (например, [: alpha:]). Соответствует любому символу в классе символов.
[==] Определяет классы эквивалентности. Например, [= a =] соответствует всем символам, имеющим базовую букву «a».

Вот список значений для match_param:

Значение Описание
«С» Выполните сравнение с учетом регистра.
'я' Выполните сопоставление без учета регистра.
«П» Позволяет символу точки (.) Соответствовать символу новой строки. По умолчанию период является групповым символом.
«М» Предполагается, что выражение имеет несколько строк, где ^ - начало строки, а $ - конец строки, независимо от положения этих символов в выражении . По умолчанию выражение считается одной строкой.
'Икс' Пробельные символы игнорируются. По умолчанию пробельные символы сопоставляются с любым другим символом.

Относится к

Oracle 12c, Oracle 11g

Примеры: функция Oracle REGEXP_INSTR

Следующий пример находит позицию первого символа 't' в строке.

SELECT REGEXP_INSTR ('The web development Tutorial', 't') FROM dual;

Пример вывода:

 REGEXP_INSTR ( 'THEWEBDEVELOPMENTTUTORIAL', 'Т')
---------------------------------------------
                                           19

Приведенный выше пример вернет 2, потому что он считает количество вхождений 't' в строку. Здесь мы не указали значение match_parameter, функция REGEXP_COUNT будет выполнять поиск с учетом регистра, что означает, что символы 'T' не будут включены в счет.

В следующем примере мы предоставили start_position из 1, вхождение 1, return_option из 0 и match_parameter из 'i', запрос вернет 1 в качестве результата. На этот раз функция будет искать значения «t» и «T» и возвращать первое вхождение.

SELECT REGEXP_INSTR ('The web development Tutorial', 't',1,1,0,'i') FROM dual;

Пример вывода:

 REGEXP_INSTR ( 'THEWEBDEVELOPMENTTUTORIAL', 'Т', 1,1,0 'I'),
-------------------------------------------------- -----
                                                      1

В следующем примере проверяется строка, ища вхождения одного или нескольких непустых символов. Поиск начинается с первого символа в строке и возвращает начальную позицию (по умолчанию) третьего вхождения одного или нескольких непустых символов.

SELECT
REGEXP_INSTR('The web development tutorial',
'[^ ]+', 1, 3) "REGEXP_INSTR"
FROM DUAL;

Пример вывода:

 REGEXP_INSTR
------------
           9

В следующем примере проверяется строка, ища вхождения слов, начинающихся с t, e или w, независимо от регистра, за которыми следуют любые три алфавитных символа. Поиск начинается с третьего символа в строке и возвращает позицию в строке символ, следующий за вторым вхождением с t, e или w, независимо от регистра.

SELECT
REGEXP_INSTR('The web development tutorial',
'[s|r|p][[:alpha:]]{3}', 3, 2, 1, 'i') "REGEXP_INSTR"
FROM DUAL;

Пример вывода:

 REGEXP_INSTR
------------
          29

Предыдущий: REGEXP_COUNT
Далее: NLS_CHARSET_DECL_LEN

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code