函数名称 | 语法 | 说明 |
regexp_extract_all(x, regular expression) | 提取目标字符串中符合正则表达式的子串,并返回所有子串的合集。 | |
| regexp_extract_all(x, regular expression, n) | 提取目标字符串中符合正则表达式的子串,并返回与目标捕获组匹配的子串合集。 |
regexp_extract(x, regular expression) | 提取并返回目标字符串中符合正则表达式的第一个子串。 | |
| regexp_extract(x, regular expression, n) | 提取目标字符串中符合正则表达式的子串,然后返回与目标捕获组匹配的第一个子串。 |
regexp_like(x, regular expression) | 判断目标字符串是否符合正则表达式。 | |
regexp_replace(x, regular expression) | 删除目标字符串中符合正则表达式的子串,返回未被删除的子串。 | |
| regexp_replace(x, regular expression, replace string) | 替换目标字符串中符合正则表达式的子串,返回被替换后的字符串。 |
regexp_split(x, regular expression) | 使用正则表达式分割目标字符串,返回被分割后的子串合集。 | |
regexp_extract_all(x, regular expression)
regexp_extract_all(x, regular expression, n)
参数 | 说明 |
x | 参数值为 varchar 类型。 |
regular expression | 正则表达式,例如 \\d+。同时支持捕获组,例如(\\d)(\\d)(\\d)。 |
n | 第 n 个捕获组。n 为从1开始的整数。 |
* | SELECT regexp_extract_all(http_protocol, '\\d+')
[1,1]
regexp_extract(x, regular expression)
regexp_extract(x, regular expression, n)
参数 | 说明 |
x | 参数值为 varchar 类型。 |
regular expression | 正则表达式,例如 \\d+。同时支持捕获组,例如(\\d)(\\d)(\\d)。 |
n | 第 n 个捕获组。n 为从1开始的整数。 |
* | SELECT regexp_extract(http_protocol, '\\d+')
1
regexp_like(x, regular expression)
参数 | 说明 |
x | 参数值为 varchar 类型。 |
regular expression | 正则表达式。 |
* | select regexp_like(server_protocol, '\\d+')
TRUE
regexp_replace(x, regular expression)
regexp_replace(x, regular expression, replace string)
参数 | 说明 |
x | 参数值为 varchar 类型。 |
regular expression | 正则表达式。 |
replace string | 用于替换的子串。正则表达式中使用捕获组时,可通过 $1, $2 的方式引用对应的捕获组。 |
* | select regexp_replace(server_protocol, '.\\d+') AS server_protocol, count(*) AS count GROUP BY server_protocol
server_protocol | count |
HTTP | 357 |
*号代替原始字符串hello123world中的数字,并使用-连接字符串中的各个部分。* | SELECT regexp_replace('hello123world', '(hello)(\\d+)(world)', '$1-***-$3') as demo limit 1
demo |
hello-***-world |
regexp_split(x, regular expression)
参数 | 说明 |
x | 参数值为 varchar 类型。 |
regular expression | 正则表达式。 |
* | select regexp_split(server_protocol, '/')
["HTTP","1.1"]
文档反馈