Spec-Zone.ru › MariaDB

REGEXP_REPLACE

Синтаксис

REGEXP_REPLACE(subject, pattern, replace)

Описание

REGEXP_REPLACE возвращает строку subject со всеми вхождениями регулярного выражения pattern , заменёнными строкой replace. Если вхождения не найдены, то subject возвращается без изменений.

Строка замены может содержать обратные ссылки на подвыражения в формате \N, где N — число от 1 до 9.

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

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

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

Переменная default_regex_flags решает оставшиеся совместимости между PCRE и старой библиотекой регулярных выражений.

Примеры

SELECT REGEXP_REPLACE('ab12cd','[0-9]','') AS remove_digits;
-> abcd

SELECT REGEXP_REPLACE('<html><head><title>title</title><body>body</body></htm>', '<.+?>',' ')
AS strip_html;
-> title  body

Обратные ссылки на подвыражения в формате \N, где N — число от 1 до 9:

SELECT REGEXP_REPLACE('James Bond','^(.*) (.*)$','\\2, \\1') AS reorder_name;
-> Bond, James

Сопоставления с учётом и без учёта регистра:

SELECT REGEXP_REPLACE('ABC','b','-') AS case_insensitive;
-> A-C

SELECT REGEXP_REPLACE('ABC' COLLATE utf8_bin,'b','-') AS case_sensitive;
-> ABC

SELECT REGEXP_REPLACE(BINARY 'ABC','b','-') AS binary_data;
-> ABC

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

SELECT REGEXP_REPLACE('ABC','(?-i)b','-') AS force_case_sensitive;
-> ABC

SELECT REGEXP_REPLACE(BINARY 'ABC','(?i)b','-') AS force_case_insensitive;
-> A-C
Содержимое, воспроизведённое на этом сайте, является собственностью соответствующих владельцев, и это содержимое не проходит предварительной проверки 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_replace/

Spec-Zone.ru

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