函数名称 | 语法 | 说明 |
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) 表示三个捕获组 。 |
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) 表示三个捕获组 。 |
n | 第 n 个捕获组。n 为从1开始的整数。 |
* | SELECT regexp_extract_all(http_protocol, '\\d+')
1
* | SELECT regexp_extract(request_uri, './(index.)', 1) AS file, count(*) AS count GROUP BY file
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 | 用于替换的子串. |
* | select regexp_replace(server_protocol, '.\\d+') AS server_protocol, count(*) AS count GROUP BY server_protocol
server_protocol | count |
HTTP | 357 |
regexp_split(x, regular expression)
参数 | 说明 |
x | 参数值为 varchar 类型。 |
regular expression | 正则表达式。 |
* | select regexp_split(server_protocol, '/')
["HTTP","1.1"]
本页内容是否解决了您的问题?