📣
TiDB Cloud Premium 开放公测中。为企业级工作负载提供无限扩展、即时弹性伸缩和高级安全保障。此页面由 AI 自动翻译,英文原文请见此处。

REGEXP_SPLIT_TO_ARRAY



使用正则表达式模式切分字符串,并将各个片段作为数组返回。

语法

REGEXP_SPLIT_TO_ARRAY(string, pattern [, flags text])
参数描述
string要切分的输入字符串(VARCHAR 类型)
pattern用于切分的正则表达式模式(VARCHAR 类型)
flags text用于修改正则表达式行为的标记字符串。

支持的 flags 参数:

通过组合以下字符,提供灵活的正则表达式配置选项,以控制匹配行为:

  • i(大小写不敏感):模式匹配时忽略大小写。
  • c(大小写敏感):模式匹配区分大小写(默认行为)。
  • n 或 m(多行):启用多行模式。在此模式下,^ 和 $ 分别匹配字符串的开头和结尾,也匹配每一行的开头和结尾;点号 . 不匹配换行符。
  • s(单行):启用单行模式(也称为 dot-matches-newline)。在此模式下,点号 . 匹配任意字符,包括换行符。
  • x(忽略空白):忽略模式中的空白字符(提高模式可读性)。
  • q(字面量):将 pattern 视为字面字符串,而不是正则表达式。

示例

基本切分

SELECT REGEXP_SPLIT_TO_ARRAY('apple,orange,banana', ','); ┌───────────────────────────────────────────┐ │ ["apple","orange","banana"] │ └───────────────────────────────────────────┘

复杂分隔符

SELECT REGEXP_SPLIT_TO_ARRAY('2023-01-01T14:30:00', '[-T:]'); ┌───────────────────────────────────────────────────────┐ │ ["2023","01","01","14","30","00"] │ └───────────────────────────────────────────────────────┘

处理空元素

SELECT REGEXP_SPLIT_TO_ARRAY('a,,b,,,c', ',+'); ┌───────────────────────────────────┐ │ ["a","b","c"] │ └───────────────────────────────────┘

使用 flag text

SELECT regexp_split_to_array('One_Two_Three', '[_-]', 'i') ╭─────────────────────────────────────────────────────╮ │ ['One','Two','Three'] │ ╰─────────────────────────────────────────────────────╯

另请参阅

文档内容是否有帮助?