← Cloudflare Pipelines / pipelines / sql-reference / scalar-functions
Funkce pro regulární výrazy
Implementace skalárních funkcí Cloudflare Pipelines vychází z Apache DataFusion ↗ (přes Arroyo ↗) a tato dokumentace vychází z referenční dokumentace funkcí DataFusion.
Cloudflare Pipelines používá Ve stylu PCRE ↗ regulární výraz syntaxe ↗ (bez podpory několika funkcí, včetně výrazů look-around a zpětných referencí).
regexp_like
Vrátí true, pokud regulární výraz ↗ má v řetězci alespoň jednu shodu, jinak false.
regexp_like(str, regexp[, flags])Argumenty
- str: Řetězcový výraz, se kterým se pracuje. Může to být konstanta, sloupec nebo funkce a libovolná kombinace řetězcových operátorů.
- regexp: Regulární výraz, kterým se má testovat řetězcový výraz. Může to být konstanta, sloupec nebo funkce.
- flags: Volitelné příznaky regulárního výrazu, které řídí jeho chování.
Podporovány jsou tyto příznaky:
- i: nerozlišuje velká a malá písmena: písmena odpovídají velkým i malým
- m: víceřádkový režim: ^ a $ odpovídají začátku/konci řádku
- s: umožní, aby . odpovídalo \n
- R: povolí režim CRLF: pokud je zapnutý víceřádkový režim, použije se \r\n
- U: prohodí význam x* a x*?
Příklad
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 |
+--------------------------------------------------+Další příklady najdete zde ↗
regexp_match
Vrátí seznam regulární výraz ↗ shody v řetězci.
regexp_match(str, regexp[, flags])Argumenty
- str: Řetězcový výraz, se kterým se pracuje. Může to být konstanta, sloupec nebo funkce a libovolná kombinace řetězcových operátorů.
- regexp: Regulární výraz, se kterým se má porovnávat. Může to být konstanta, sloupec nebo funkce.
- flags: Volitelné příznaky regulárního výrazu, které řídí jeho chování.
Podporovány jsou tyto příznaky:
- i: nerozlišuje velká a malá písmena: písmena odpovídají velkým i malým
- m: víceřádkový režim: ^ a $ odpovídají začátku/konci řádku
- s: umožní, aby . odpovídalo \n
- R: povolí režim CRLF: pokud je zapnutý víceřádkový režim, použije se \r\n
- U: prohodí význam x* a x*?
Příklad
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] |
+---------------------------------------------------+Další příklady najdete zde ↗
regexp_replace
Nahradí v řetězci podřetězce, které odpovídají regulární výraz ↗.
regexp_replace(str, regexp, replacement[, flags])Argumenty
- str: Řetězcový výraz, se kterým se pracuje. Může to být konstanta, sloupec nebo funkce a libovolná kombinace řetězcových operátorů.
- regexp: Regulární výraz, se kterým se má porovnávat. Může to být konstanta, sloupec nebo funkce.
- replacement: Nahrazující řetězcový výraz. Může to být konstanta, sloupec nebo funkce a libovolná kombinace řetězcových operátorů.
- flags: Volitelné příznaky regulárního výrazu, které řídí jeho chování.
Podporovány jsou tyto příznaky:
- g: (globální) Hledá globálně a nekončí po prvním nalezeném výskytu
- i: nerozlišuje velká a malá písmena: písmena odpovídají velkým i malým
- m: víceřádkový režim: ^ a $ odpovídají začátku/konci řádku
- s: umožní, aby . odpovídalo \n
- R: povolí režim CRLF: pokud je zapnutý víceřádkový režim, použije se \r\n
- U: prohodí význam x* a x*?
Příklad
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 |
+-------------------------------------------------------------------+Další příklady najdete zde ↗
position
Vrátí pozici substr v origstr (počítáno od 1). Pokud substr se
neobjeví v origstr, vrátí 0.
position(substr in origstr)Argumenty
- substr: Řetězec vzoru.
- origstr: Řetězec modelu.