Cloudflare Pipelines 标量函数实现基于 Apache DataFusion ↗(通过 Arroyo ↗),本文档源自 DataFusion 函数参考。
Cloudflare Pipelines 使用 PCRE 风格 ↗ 正则表达式语法 ↗(不包括对若干功能的支持,如 look-around 和反向引用)。
如果[正则表达式]在字符串中至少有一个匹配则返回 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(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(str, regexp, replacement[, flags])参数
- str: 要操作的字符串表达式。 可以是常量、列或函数,以及字符串运算符的任何组合。
- regexp: 用于匹配的正则表达式。 可以是常量、列或函数。
- replacement: 替换字符串表达式。 可以是常量、列或函数,以及字符串运算符的任何组合。
- flags: 可选的正则表达式标志,用于控制正则表达式的行为。
支持以下标志:
- g:(全局)全局搜索,不在第一个匹配后返回
- 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 |
+-------------------------------------------------------------------+更多示例请参阅此处 ↗
返回 substr 在 origstr 中的位置(从 1 开始计数)。如果 substr 不
出现在 origstr 中,返回 0。
position(substr in origstr)参数
- substr: 模式字符串。
- origstr: 源字符串。