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
© 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/