Функция Oracle REGEXP_COUNT
Описание
Функция Oracle REGEXP_COUNT используется для подсчета количества раз, когда шаблон встречается в строке. Возвращает целое число, указывающее количество вхождений шаблона. Если совпадений не найдено, функция возвращает 0.
Синтаксис:
REGEXP_COUNT (source_char, pattern [, position [, match_param]])
Параметры:
название | Описание | Типы данных |
---|---|---|
source_char | Строка для поиска. | CHAR, VARCHAR2, NCHAR, NVARCHAR2, CLOB или NCLOB. |
шаблон | шаблон является регулярным выражением. | CHAR, VARCHAR2, NCHAR или NVARCHAR2. |
позиция | Необязательный. Позиция является положительным целым числом, указывающим символ source_char, с которого начинается поиск. Если опущено, по умолчанию используется значение 1, которое является первой позицией в строке. | |
match_param | Необязательный. Это позволяет вам изменять поведение соответствия для функции REGEXP_COUNT. |
Вот список операторов форматирования шаблона:
оператор | Описание |
---|---|
/ д | Цифровой символ |
/ 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_COUNT
В следующем примере подсчитывается, сколько раз символ 't' появляется в строке.
SELECT REGEXP_COUNT ('The web development Tutorial', 't') FROM dual;
Пример вывода:
REGEXP_COUNT ( 'THEWEBDEVELOPMENTTUTORIAL', 'Т') --------------------------------------------- 2
Приведенный выше пример вернет 2, потому что он считает количество вхождений 't' в строку. Здесь мы не указали значение match_parameter, функция REGEXP_COUNT будет выполнять поиск с учетом регистра, что означает, что символы 'T' не будут включены в счет.
В следующем примере мы предоставили start_position из 1 и match_parameter из 'i', запрос вернет 4 в качестве результата. На этот раз значения «t» и «T» будут включены в счет.
SELECT REGEXP_COUNT ('The web development Tutorial', 't',1,'i') FROM dual;
Пример вывода:
REGEXP_COUNT ( 'THEWEBDEVELOPMENTTUTORIAL', 'Т', 1, 'I'), -------------------------------------------------- - 4
В следующем примере будет возвращено количество раз, когда слово «The» появляется в строке.
SELECT REGEXP_COUNT ('Match the string for multiple character', 'The',1,'i') FROM dual;
Пример вывода:
REGEXP_COUNT ( 'MATCHTHESTRINGFORMULTIPLECHARACTER', 'The', 1, 'I') -------------------------------------------------- ------------ 1
Предыдущая: ДЛИНА
Далее: REGEXP_INSTR
Новый контент: Composer: менеджер зависимостей для PHP , R программирования