← Cloudflare Pipelines / pipelines / sql-reference / scalar-functions
Функции для регулярных выражений
Реализации скалярных функций Cloudflare Pipelines основаны на Apache DataFusion ↗ (через Arroyo ↗) и эта документация составлена на основе справочника функций DataFusion.
Cloudflare Pipelines использует PCRE-подобный ↗ регулярное выражение синтаксис ↗ (без поддержки ряда функций, включая опережающую/ретроспективную проверку и обратные ссылки).
regexp_like
Возвращает true, если регулярное выражение ↗ содержит хотя бы одно совпадение в строке, в противном случае возвращается false.
regexp_like(str, regexp[, flags])Аргументы
- str: Строковое выражение, с которым выполняется операция. Может быть константой, столбцом или функцией, а также любой комбинацией строковых операторов.
- regexp: Регулярное выражение для проверки строкового выражения. Может быть константой, столбцом или функцией.
- flags: Необязательные флаги регулярного выражения, управляющие его поведением.
Поддерживаются следующие флаги:
- i: без учёта регистра: буквы соответствуют как верхнему, так и нижнему регистру
- m: многострочный режим: ^ и $ соответствуют началу и концу строки
- s: разрешает символу . соответствовать \n
- R: включает режим CRLF: если включён многострочный режим, используется \r\n
- U: меняет местами значения x* и x*?
Пример
select regexp_like('Köln', '[a-zA-Z]ö[a-zA-Z]{2}');
+--------------------------------------------------------+
| regexp_like(Utf8("Köln"),Utf8("[a-zA-Z]ö[a-zA-Z]{2}")) |
+--------------------------------------------------------+
| true |
+--------------------------------------------------------+
SELECT regexp_like('aBc', '(b|d)', 'i');
+--------------------------------------------------+
| regexp_like(Utf8("aBc"),Utf8("(b|d)"),Utf8("i")) |
+--------------------------------------------------+
| true |
+--------------------------------------------------+Дополнительные примеры можно найти здесь ↗
regexp_match
Возвращает список регулярное выражение ↗ совпадений в строке.
regexp_match(str, regexp[, flags])Аргументы
- str: Строковое выражение, с которым выполняется операция. Может быть константой, столбцом или функцией, а также любой комбинацией строковых операторов.
- regexp: Регулярное выражение для сопоставления. Может быть константой, столбцом или функцией.
- flags: Необязательные флаги регулярного выражения, управляющие его поведением.
Поддерживаются следующие флаги:
- i: без учёта регистра: буквы соответствуют как верхнему, так и нижнему регистру
- m: многострочный режим: ^ и $ соответствуют началу и концу строки
- s: разрешает символу . соответствовать \n
- R: включает режим CRLF: если включён многострочный режим, используется \r\n
- U: меняет местами значения x* и x*?
Пример
select regexp_match('Köln', '[a-zA-Z]ö[a-zA-Z]{2}');
+---------------------------------------------------------+
| regexp_match(Utf8("Köln"),Utf8("[a-zA-Z]ö[a-zA-Z]{2}")) |
+---------------------------------------------------------+
| [Köln] |
+---------------------------------------------------------+
SELECT regexp_match('aBc', '(b|d)', 'i');
+---------------------------------------------------+
| regexp_match(Utf8("aBc"),Utf8("(b|d)"),Utf8("i")) |
+---------------------------------------------------+
| [B] |
+---------------------------------------------------+Дополнительные примеры можно найти здесь ↗
regexp_replace
Заменяет в строке подстроки, соответствующие регулярное выражение ↗.
regexp_replace(str, regexp, replacement[, flags])Аргументы
- str: Строковое выражение, с которым выполняется операция. Может быть константой, столбцом или функцией, а также любой комбинацией строковых операторов.
- regexp: Регулярное выражение для сопоставления. Может быть константой, столбцом или функцией.
- replacement: Строковое выражение замены. Может быть константой, столбцом или функцией, а также любой комбинацией строковых операторов.
- flags: Необязательные флаги регулярного выражения, управляющие его поведением.
Поддерживаются следующие флаги:
- g: (global) Выполняет поиск по всей строке и не останавливается после первого совпадения
- i: без учёта регистра: буквы соответствуют как верхнему, так и нижнему регистру
- m: многострочный режим: ^ и $ соответствуют началу и концу строки
- s: разрешает символу . соответствовать \n
- R: включает режим CRLF: если включён многострочный режим, используется \r\n
- U: меняет местами значения x* и x*?
Пример
SELECT regexp_replace('foobarbaz', 'b(..)', 'X\\1Y', 'g');
+------------------------------------------------------------------------+
| regexp_replace(Utf8("foobarbaz"),Utf8("b(..)"),Utf8("X\1Y"),Utf8("g")) |
+------------------------------------------------------------------------+
| fooXarYXazY |
+------------------------------------------------------------------------+
SELECT regexp_replace('aBc', '(b|d)', 'Ab\\1a', 'i');
+-------------------------------------------------------------------+
| regexp_replace(Utf8("aBc"),Utf8("(b|d)"),Utf8("Ab\1a"),Utf8("i")) |
+-------------------------------------------------------------------+
| aAbBac |
+-------------------------------------------------------------------+Дополнительные примеры можно найти здесь ↗
position
Возвращает позицию substr в origstr (отсчет начинается с 1). Если substr не
отображается в origstr, возвращает 0.
position(substr in origstr)Аргументы
- substr: Строка шаблона.
- origstr: Строка модели.