功能概述
从字符串中提取所有匹配正则表达式指定捕获组的子串,返回 ARRAY<STRING>。
⚠️ 注意:
<pattern>
<pattern>
必须包含捕获组
()
()
,否则报错"Regex group count is 0"。
语法
REGEXP_EXTRACT_ALL(<str>, <pattern>, <group_index>)
参数说明
<str>
<str>
:STRING 类型,待搜索的字符串。
<pattern>
<pattern>
:STRING 类型,包含捕获组的正则表达式。必须有至少一个 ()
()
捕获组。
<group_index>
<group_index>
:INT 类型,指定返回第几个捕获组(从 1 开始)。
使用示例
SELECT regexp_extract_all('100-200, 300-400', '([0-9]+)-([0-9]+)', 1);
-- ["100","300"]
SELECT regexp_extract_all('100-200, 300-400', '([0-9]+)-([0-9]+)', 2);
-- ["200","400"]
SELECT regexp_extract_all('hello world foo', '([a-z]+)', 1);
-- ["hello","world","foo"]
SELECT regexp_extract_all('no match here', '([0-9]+)', 1);
-- []
相关文档