跳转到内容
搜索文档

正则表达式函数

最后更新 查看 MarkdownAgent 设置

Cloudflare Pipelines 标量函数实现基于 Apache DataFusion(通过 Arroyo),本文档源自 DataFusion 函数参考。

Cloudflare Pipelines 使用 PCRE 风格 正则表达式语法(不包括对若干功能的支持,如 look-around 和反向引用)。

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:(全局)全局搜索,不在第一个匹配后返回
    • 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

返回 substrorigstr 中的位置(从 1 开始计数)。如果 substr 不 出现在 origstr 中,返回 0。

position(substr in origstr)

参数

  • substr: 模式字符串。
  • origstr: 源字符串。

这篇文档对您有帮助吗?