更新时间:2024-07-11 GMT+08:00
分享

正则式函数

本文介绍正则式函数的语法规则,包括参数解释、函数示例等。

函数列表

表1 正则式函数

函数

描述

regexp_extract函数

提取目标字符串中符合正则表达式的子串。

regexp_like函数

判断目标字符串是否符合正则表达式。

regexp_extract_all函数

从目标字符串中提取符合正则表达式的子字符串。

regexp_replace函数

删除或替换目标字符串中符合正则表达式的子串。

regexp_split函数

分割目标字符串,返回被分割后的子串合集。

regexp_extract函数

提取目标字符串中符合正则表达式的子串。

  • 提取并返回目标字符串中符合正则表达式的第一个子串。

    语法:regexp_extract(expr, regularExpr)

  • 提取并返回目标字符串中符合正则表达式的第n个子串。

    语法:regexp_extract(expr, regularExpr, n)

表2 参数说明

参数名称

描述

类型

是否必选

expr

目标字符串。

String

regularExpr

包含捕获组的正则表达式,(\d)(\d)表示两个捕获组。

String

n

第n个符合正则表达式的子串。

Integer

返回值类型:String类型

示例:SELECT REGEXP_EXTRACT('HTTP/2.0', '\d+')

表3 查询分析结果

类型

场景1

场景2

查询语句

REGEXP_EXTRACT('HTTP/2.0', '\d+')

REGEXP_EXTRACT ('HTTP/2.0', '\d+', 1)

返回结果

2

2

regexp_like函数

判断目标字符串是否符合正则表达式。

语法:regexp_like(expr, regularExpr)

表4 参数说明

参数名称

描述

类型

是否必选

expr

目标字符串

String

regularExpr

包含捕获组的正则表达式,(\d)(\d)表示两个捕获组

String

返回值类型:

Boolean类型

示例:SELECT REGEXP_LIKE('HTTP/2.0', '\d+')

表5 查询分析结果

类型

场景

查询语句

REGEXP_LIKE('HTTP/2.0', '\d+')

返回结果

true

regexp_extract_all函数

从目标字符串中提取符合正则表达式的子字符串。

语法:regexp_extract_all(expr, regularExpr)

表6 参数说明

参数名称

描述

类型

是否必选

expr

目标字符串

String

regularExpr

包含捕获组的正则表达式,(\d)(\d)表示两个捕获组

String

返回值类型:Array类型

示例:SELECT REGEXP_EXTRACT_ALL('HTTP/2.0', '\d+')

表7 查询分析结果

类型

场景

查询语句

REGEXP_EXTRACT_ALL ('HTTP/2.0', '\d+')

返回结果

["2","0"]

regexp_replace函数

删除或替换目标字符串中符合正则表达式的子串。

  • 删除目标字符串中符合正则表达式的子串,返回未被删除的子串。

    语法:regexp_replace(expr, regularExpr)

  • 替换目标字符串中符合正则表达式的子串,返回被替换后的字符串。

    语法:regexp_replace(expr, regularExpr, replaceStr)

表8 参数说明

参数名称

描述

类型

是否必选

expr

目标字符串

String

regularExpr

包含捕获组的正则表达式,(\d)(\d)表示两个捕获组

String

replaceStr

替换的字符串

String

返回值类型:String类型

示例:SELECT REGEXP_REPLACE('ab12cd34', '\d+'), REGEXP_REPLACE('ab12cd34', '\d+', '00')

表9 查询分析结果

类型

场景1

场景2

查询语句

REGEXP_REPLACE('ab12cd34', '\d+')

REGEXP_REPLACE('ab12cd34', '\d+', '00')

返回结果

abcd

ab00cd00

regexp_split函数

分割目标字符串,返回被分割后的子串合集。

语法:regexp_split(expr, regularExpr)

表10 参数说明

参数名称

描述

类型

是否必选

expr

目标字符串

String

regularExpr

包含捕获组的正则表达式,(\d)(\d)表示两个捕获组

String

返回值类型:Array类型

示例:SELECT REGEXP_SPLIT('request_uri:/request/path-0/file-7','/')

表11 查询分析结果

类型

场景

查询语句

REGEXP_SPLIT('request_uri:/request/path-0/file-7','/')

返回结果

["request_uri:","request","path-0","file-7"]

相关文档