Spec-Zone.ru › MariaDB

REGEXP_INSTR

Синтаксис

REGEXP_INSTR(subject, pattern)

Возвращает позицию первого вхождения регулярного выражения pattern в строке subject, или 0, если шаблон не найден.

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

Функция следует правилам чувствительности к регистру эффективной коллизии. Сопоставление выполняется без учета регистра для коллизий без учета регистра и с учетом регистра для коллизий с учетом регистра и для бинарных данных.

Чувствительность коллизии к регистру можно переопределить с помощью флагов (?i) и (?-i) PCRE.

MariaDB использует библиотеку PCRE регулярных выражений для повышения производительности регулярных выражений, и REGEXP_INSTR был представлен как часть этого улучшения.

Примеры

SELECT REGEXP_INSTR('abc','b');
-> 2

SELECT REGEXP_INSTR('abc','x');
-> 0

SELECT REGEXP_INSTR('BJÖRN','N');
-> 5

Преобразование многобайтовой кодировки в BINARY для получения смещений в байтах:

SELECT REGEXP_INSTR(BINARY 'BJÖRN','N') AS cast_utf8_to_binary;
-> 6

Чувствительность к регистру:

SELECT REGEXP_INSTR('ABC','b');
-> 2

SELECT REGEXP_INSTR('ABC' COLLATE utf8_bin,'b');
-> 0

SELECT REGEXP_INSTR(BINARY'ABC','b');
-> 0

SELECT REGEXP_INSTR('ABC','(?-i)b');
-> 0

SELECT REGEXP_INSTR('ABC' COLLATE utf8_bin,'(?i)b');
-> 2
Содержимое, воспроизведенное на этом сайте, является собственностью его соответствующих владельцев, и это содержимое не проверяется предварительно компанией MariaDB. Мнения, информация и мнения, выраженные в этом содержании, не обязательно отражают мнения MariaDB или любой другой стороны.

© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/regexp_instr/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API