日志服务支持正则式函数,您可以在查询分析数据时使用该函数。
正则式函数解析一串字符串,并且返回需要的一部分子串。
常见的正则式函数及含义如下表所示。
函数名 | 含义 | 样例 |
---|---|---|
regexp_extract_all(string, pattern) |
返回字符串中命中正则式的所有子串,返回结果是一个字符串数组。 |
|
regexp_extract_all(string, pattern, group) |
返回字符串中命中正则式的第group个() 内部分,返回结果是一个字符串数组。
|
*| SELECT regexp_extract_all('5a 67a 890m', '(\d+)a',1) ,结果为['5','67'] 。
|
regexp_extract(string, pattern) |
返回字符串命中的正则式的第一个子串。 | *|SELECT regexp_extract('5a 67b 890m', '\d+') ,结果为'5' 。
|
regexp_extract(string, pattern,group) |
返回字符串命中的正则式的第group个() 内的第1个子串。
|
*|SELECT regexp_extract('5a 67b 890m', '(\d+)([a-z]+)',2) ,结果为'a' 。
|
regexp_like(string, pattern) |
判断字符串是否命中正则式,返回bool类型,正则式可以只命中字符串的一部分。 | *|SELECT regexp_like('5a 67b 890m', '\d+m') ,结果为true。
|
regexp_replace(string, pattern, replacement) |
把字符串中命中正则式的部分替换成replacement。 | *|SELECT regexp_replace('5a 67b 890m', '\d+','a') ,结果为'aa ab am' 。
|
regexp_replace(string, pattern) |
把字符串中命中正则式的部分删除,相当于regexp_replace(string,patterm,'') 。
|
*|SELECT regexp_replace('5a 67b 890m', '\d+') ,结果为'a b m' 。
|
regexp_split(string, pattern) |
使用正则式把字符串切分成数组。 | *|SELECT regexp_split('5a 67b 890m', '\d+') ,结果为['a','b','m'] 。
|